!/코테!

파이썬 자료형

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+ : 내부적으로 인덱스를 이용하여 입력순서가 유지)