< collections란? >
- 유용한 자료구조를 제공하는 표준 라이브러리
- 코딩 테스트에서 유용하게 사용되는 클래스는 deque와 Counter이다
< deque >
- 별도로 제공되는 Queue 라이브러리가 있지만 일반적인 큐 자료구조를 구현하는 라이브러리가 아니라 deque를 통해 큐를 구현해야 함
- 리스트 자료형과 다르게 인덱싱, 슬라이싱 등의 기능은 사용할수 없으나 연속적으로 나열된 데이터의 시작 부분이나 끝부분에 데이터를 삽입하거나 삭제할 때 매우 효과적
- 스택이냐 큐의 기능을 모두 포함한다고도 볼 수 있어 스택 혹은 큐 자료구조의 대용으로 사용될 수 있음
- 원소 제거
- popleft(): 첫 번째 원소를 제거할 때
- pop(): 마지막 원소를 제거할 때
- 원소 삽입
- appendleft(x): 첫 번째 인덱스에 원소 x를 삽입할 때
- append(x): 마지막 인덱스에 원소 x를 삽입할 때
- 큐와 스택 사용 방법
- 큐 자료구조로 사용시 append와 popleft 사용
- 스택 자료구조로 사용시 append와 pop 사용
from collections import deque
data = deque([2, 3, 4])
data.appendleft(1)
data.append(5)
print(data)
print(list(data)) # 리스트 자료형으로 변환

< Counter >
- 등장 횟수를 세는 기능을 제공
- iterable 객체가 주어졌을 때 해당 객체 내부의 원소가 몇 번씩 등장했는지 알려줌
- 원소별 등장 횟수를 세는 기능이 필요할 때 짧은 소스코드로 이를 구현
from collections import Counter
counter = Counter(['red', 'blue', 'red', 'green', 'blue', 'blue'])
print(counter['blue']) # 'blue'가 등장한 횟수 출력
print(counter['green']) # 'green'이 등장한 횟수 출력
print(dict(counter)) # 사전 자료형으로 변환
