데이터 구조(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의 교집합과 같다.