collections 모듈
학습 목표
Counter로 빈도수를 효율적으로 계산할 수 있다defaultdict로 키 부재 시 기본값을 자동 생성할 수 있다deque로 양방향 큐 연산을 수행할 수 있다- 적절한 컨테이너 타입을 선택할 수 있다
왜 중요한가
collections 모듈은 Python 내장 자료구조의 확장판입니다. 기본 dict, list로 구현하면 코드가 복잡해지는 패턴들을 간결하고 효율적으로 처리합니다. 데이터 분석, 텍스트 처리, 큐 구현 등 실무에서 필수적인 도구입니다.
Counter
요소의 빈도수를 세는 딕셔너리의 하위 클래스입니다.defaultdict
존재하지 않는 키에 접근할 때 자동으로 기본값을 생성합니다.일반 dict와의 비교
deque (Double-Ended Queue)
양쪽 끝에서 O(1)로 추가/삭제가 가능한 이중 연결 리스트 기반 자료구조입니다.list vs deque 성능 비교
| 연산 | list | deque |
|---|---|---|
끝에 추가 append | O(1) | O(1) |
앞에 추가 appendleft | O(n) | O(1) |
끝에서 삭제 pop | O(1) | O(1) |
앞에서 삭제 popleft | O(n) | O(1) |
인덱스 접근 [i] | O(1) | O(n) |
OrderedDict
Python 3.7 이후 일반dict도 삽입 순서를 보장하지만, OrderedDict는 순서 관련 추가 기능을 제공합니다.
AI/ML에서의 활용
ChainMap은 언제 사용하나요?
ChainMap은 언제 사용하나요?
여러 딕셔너리를 하나로 합쳐서 검색할 때 사용합니다. 설정 파일에서 기본값 + 환경변수 + 커맨드라인 인자를 계층적으로 관리할 때 유용합니다.
defaultdict vs setdefault 어떤 것이 좋나요?
defaultdict vs setdefault 어떤 것이 좋나요?
반복적으로 기본값이 필요하면
defaultdict가 깔끔합니다. 한두 번만 필요하면 setdefault()로 충분합니다.체크리스트
-
Counter로 빈도수를 계산하고most_common()을 사용할 수 있다 -
defaultdict로 키 부재 시 자동 기본값을 생성할 수 있다 -
deque로 양방향 큐 연산과 슬라이딩 윈도우를 구현할 수 있다

