티스토리 뷰
- 정수형
- 양의 정수, 음의 정수, 0
a = 777
print(a) # 777
2. 실수형
- 소수점 아래의 데이터를 포함하는 수 자료형
- e나 E를 이용한 지수 표현 방식 사용 가능
- IEEE754 표준에서는 실수형을 저장하기위해 4바이트 혹은 8바이트의 메모리를 할당하므로, 컴퓨터 시스템은 실수 정보를 표현하는 정확도에 한계를 가진다
- 10진수 → 0.3 + 0.6 = 0.9
- 2진수 → 0.9와 최대한 가깝게 표현하지만, 미세한 오차 발생
- round를 이용해 특정 자리까지 반올림을 하는 것으로 문제 해결
- 나머지(%), 몫 (//), 거듭제곱(**)
3. 복소수형
- 복소수: 실수와 허수로 이루어진 숫자
- z = a +bj
- (a는 실수부, b는 허수부, j는 허수 단위, i^2=-1)
- complex
z1 = 3 + 4j # 실수부 3, 허수부 4
z2 = complex(5, -2) # 실수부 5, 허수부 -2
print(z1) # (3+4j)
print(z2) # (5-2j)
z = 3 + 4j
print(z.real) # 3.0
print(z.imag) # 4.0
z1 = 1 + 2j
z2 = 3 - 4j
print(z1 + z2) # (4-2j) 덧셈
print(z1 - z2) # (-2+6j) 뺄셈
print(z1 * z2) # (11+2j) 곱셈
print(z1 / z2) # (-0.2+0.4j) 나눗셈
z = 3 + 4j
print(abs(z)) # 5.0 (√(3² + 4²) = 5)
4. 문자열
- 큰따옴표안에 작은따옴표 가능
- 작은따옴표안에 큰따옴표 가능
- 백슬래시\ 사용시 따옴표 여러번 사용 가능
- 덧셈으로 연결 가능
- 곱하는 경우 여러번 더해짐
- 인덱싱과 슬라이싱 가능
- 특정 엔딕스의 값을 변경할 순 없음(Immutable)
a="하이"
a[1]="바"
print(a)
# 에러
Traceback (most recent call last):
File "/home/runner/workspace/main.py", line 2, in <module>
a[1]="바"
~^^^
TypeError: 'str' object does not support item assignment
5. 리스트 [,]
- 데이터를 연속적으로 담아 처리하기 위해 사용하는 자료형
- 인덱스는 0부터 시작
- 인덱스는 양수는 앞에서부터, 음수는 뒤에서부터 접근
- 연속적인 값은 슬라이싱(:)으로 가져온다
- 끝 인덱스는 실제 인덱스보다 +1 (마지막 인덱스는 포함안됨)
- 리스트 컴프리헨션
- 코딩테스트의 경우 N*M 크기의 2차원리스트를 초기화해야 할 때 유용하다
- 리스트는 변경이 가능하기 때문에 딕셔너리의 키 값으로 사용할 수 없다
array = [[0]*2 for _ in range(3)]
# [[0, 0], [0, 0], [0, 0]]
array[0][0] = 1
print(array)
# [[1, 0], [0, 0], [0, 0]]
# 주의!! 리스트 초기화 할 때 잘못된 예시
array = [[0]*2]*3
이 경우 [0,0]인 동일한 객체가 3번 반복 참조되어,
3개 모두 같은 객체를 가리킴
# [[0, 0], [0, 0], [0, 0]]
array[0][0] = 1
print(array)
# [[1, 0], [1, 0], [1, 0]]
6. 튜플 (,)
- 한 번 선언된 값을 변경할 수 없다
- 리스트에 비해 상대적으로 공간 효율적(메모리를 더 적게 사용)
- 인덱싱, 슬라이싱 가능
- 언제 알고리즘에 쓸까?
- 서로 다른 성질의 데이터를 묶어서 관리해야 할 때
- 최단 경로 알고리즘에서는 (비용:실수형, 노드 번호:정수형)의 형태로 튜플 자료형을 자주 사용
- 데이터의 나열을 해싱의 키 값으로 사용해야 할 때
- 튜플은 변경이 불가능하므로 리스트와 다르게 키 값으로 사용될 수 있다
- 리스트보다 메모리를 효율적으로 사용해야 할 때
7. 사전 {key:value}
- 순서가 없기 때문에 인덱싱 사용 불가
- 키와 값의 쌍을 데이터로 가지는 자료형
- 리스트나 튜플은 값을 순차적으로 저장
- 키는 변경 불가능한(Immutable) 자료형
- 사전 자료형은 해시 테이블을 이용하므로, 데이터 조회 및 수정에 있어 O(1)의 시간에 처리할 수 있다.
- keys()와 values()로 키와 값에 접근 가능
- key를 이용해 O(1)의 시간복잡도로 조회
8. 집합 {,}
- 순서가 없기 때문에 인덱싱 사용 불가
- 중복을 허용하지 않는다
- 순서가 없다
- 리스트 혹은 문자열을 이용해서 초기화 할 수 있다 :set()
- 데이터의 조회 및 수정에 있어서 **O(1)**의 시간에 처리할 수 있다
- 합집합(|), 교집합(&), 차집합(-)
- 원소 한개 추가 .add(), 원소 여러개 추가 .update(), 특정한 값을 갖는 원소 삭제 .remove()
반응형
'AI > Python' 카테고리의 다른 글
[Python] 문자열의 메소드, 문자열을 숫자로, 지수표현 (1) | 2025.03.27 |
---|---|
[Python] 모듈과 패키지, 내장함수 (0) | 2025.03.26 |
[Python] Python의 특징 (0) | 2025.03.04 |
[Python] 비동기 데코레이터 (0) | 2025.02.14 |
[Python] 클래스 멤버변수, 싱글톤 패턴과 동시성 문제 (0) | 2025.02.11 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 습관
- 아침
- 영어회화
- ChatGPT
- 줄넘기
- 티스토리챌린지
- 루틴
- llm
- 운동
- 오블완
- 실기
- 경제
- 다이어트
- 뉴스
- 미라클모닝
- 빅데이터 분석기사
- 30분
- C언어
- 오픽
- 기초
- opic
- 고득점 Kit
- 스크랩
- IH
- 프로그래머스
- 갓생
- SQL
- Ai
- Python
- 아침운동
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
글 보관함