데이터 구조(Data Structure) : 특징이 있는 데이터를 효율적으로 저장하기 위해 필요한 구조
list.append(), pop은 list.pop()을 통해 사용할 수 있다.a = [1, 2, 3, 4, 5]
a.pop() # 5 반환
a.pop() # 4 반환
a.append(6)
print(a) # [1, 2, 3, 6]
list.append(), get은 list.pop(0)를 통해 사용할 수 있다.list.pop(0)은 O(n)의 시간복잡도를 갖기 때문에, deque를 더 많이 사용한다.collections 내장 모듈에 들어 있는 자료구조이다.popleft()를 사용할 수 있다.from collections import deque
a = deque([1, 2, 3, 4, 5])
a.popleft() # 1 반환
a.append(6)
a.popleft() # 2 반환
print(a) # [3, 4, 5, 6]
())를 사용한다.if x in set과 같은 조건문에서 리스트보다 훨씬 빠르기 때문에 사용하기도 한다.s.add(n) : n을 집합에 추가한다. n이 이미 있다면 추가하지 않는다.s.remove(n) : n을 집합에서 찾아 삭제한다. n이 없다면 keyError가 발생한다.s.discard(n) : n을 집합에서 찾아 삭제한다. n이 없어도 에러가 발생하지 않는다.s.clear() : 집합의 모든 원소를 삭제한다.s1.union(s2) : s1과 s2의 합집합을 구한다.s1.intersection(s2) : s1과 s2의 교집합을 구한다.s1.difference(s2) : s1과 s2의 차집합을 구한다.{}) 또는 dict() 함수를 통해 선언이 가능하다.key:value로 값을 추가할 수 있다.dict[key] = value로 값을 추가할 수 있다.dict[key]를 통해 value를 가져올 수 있다. (key가 없다면 keyError 발생)dict.items() : key-value 쌍을 튜플에 담아 출력한다.dict.keys() : 딕셔너리의 key만 출력한다.dict.values() : 딕셔너리의 value만 출력한다.dq.rotate(n) : dq.appendleft(dq.pop())과 같은 행동을 n회 수행한다.
dq.extend(iterable) : dq 리스트 뒤에 인자를 추가한다.
dq.extendleft(iterable) : dq 리스트 앞에 인자를 reversed된 형태로 추가한다.
from collections import defaultdict
d = defaultdict(object) # defaultdict생성
d = defaultdict(lambda: 0) # 기본값을 0으로 지정
print(d["anything"]) # 0
from collections import Counter
c = Counter()
c = Counter('aivleschool')
print(c) # Counter({'l': 2, 'o': 2, 'a': 1, 'i': 1, 'v': 1, 'e': 1, 's': 1, 'c': 1, 'h': 1})
c - d : set의 차집합과 같다.c + d : set과는 다르게 각 요소를 그대로 더한다. ( 4 + (-2) = 2 )c | d : set의 합집합과 같다. ( 4 + (-2) = 4 )c & d : set의 교집합과 같다.