!/코테!
파이썬 자료형
miya
2025. 3. 24. 14:45
[ 파이썬 자료형 ]
- None (class None Type)
- 숫자
ㄴ 정수형 : 정수(class int), 불리언(class bool)
ㄴ 실수(class float)
- 집합형
ㄴ 집합(class set)
- 매핑 : 키와 자료형으로 구성된 복합 자료형
ㄴ 딕셔너리(class dict)
- 시퀀스 : 어떤 특정 대상의 순서 있는 나열
ㄴ 불변 : 문자열(class str), 튜플(class tuple), 바이트(class byte)
ㄴ 가변 : 리스트(class list)
- 불변형(Immutable) 자료형 : 정수, 실수, 문자열, 튜플
- 가변형 (Mutable) 자료형 : 리스트, 딕셔너리, 집합
[ 리스트 ]
- 순서를 저장하는 시퀀스이자 변경 가능한 목룍(mutable list)
- 입력 순서가 유지되며, 내부적으로는 동적 배열로 구현
연산 | 시간 복잡도 | 설명 |
len(a) | O(1) | 전체 요소 개수 |
a[i] | O(1) | 인덱스 i의 요소 |
a[i:j] | O(k) | i부터 j까지 슬라이스 길이만큼 k개의 요소 |
elem in a | O(n) | elem 요소가 존재하는지 확인 |
a.count(elem) | O(n) | elem 요소의 개수 |
a.index(elem) | O(n) | elem 요소의 인덱스 |
a.append(elem) | O(1) | 리스트 마지막에 elem 요소 추가 |
a.pop() | O(1) | 리스트 마지막 요소 추출, 스택 연산 |
a.pop(0) | O(n) | 리스트 첫번째 요소 추출, 큐의 연산(deque 사용이 나음 : O(1)) |
del a[i] | O(n) | 인덱스 i의 요소 삭제 |
a.sort() | O(n log n) | 리스트 정렬, Timsort 사용 |
min(a), max(a) | O(n) | 리스트의 최소/최대값 |
a.reverse() | O(n) | 리스트 순서 뒤집기 |
[ 딕셔너리 ]
연산 | 시간복잡도 | 설명 |
len(a) | O(1) | 요소의 개수 리턴 |
a[key] | O(1) | 키를 조회하여 값을 리턴 |
a[key] = value | O(1) | 키/값을 삽입 |
key in a | O(1) | 딕셔너리에 키가 존재하는지 확인 |
* 딕셔너리 모듈
- defaultdict 객체 : 존재하지 않는 키를 조회할 경우 에러메세지 출력 대신 디폴트 값을 기준으로 해당 키에 대한 아이템 생성
a = collections.defaultdict(int)
a['A'] = 5
a['B'] =4
print(a) # defaultdict(<class 'int'>, {'A':5, 'B':4})
a['C'] += 1
print(a) # defaultdict(<class 'int'>, {'A':5, 'B':4, 'C':1})
- Counter 객체 : 아이템에 대한 개수를 계산해 딕셔너리로 리턴
a = [1,2,3,4,5,5,5,6,6]
b = collections.Counter(a)
print(b) # Counter({5:3, 6:2, 1:1, 2:1, 3:1, 4:1})
print(type(b)) # <class 'collections.Counter'>
print(b.most_common(2)) # 가장 빈도 높은 요소 2개 # [(5,3), (6,2)]
- OrderedDict 객체 : 입력 순서가 유지되는 딕셔너리 (python 3.7+ : 내부적으로 인덱스를 이용하여 입력순서가 유지)