collections.defaultdict
2026년 8월 28일
collections.defaultdict
defaultdict는 없는 키를 읽으면 기본값을 자동으로 만들어 주는 dict다.- 누적·집계 코드에서
if key not in d분기를 통째로 없앤다.
Python
실제 사용 — RRF 누적
Python
defaultdict(float)가 없으면 매번 이렇게 써야 한다.
Python
기본값 팩토리
Python
인자는 호출 가능한 것이다. 값이 아니라 팩토리라서 매번 새 객체가 만들어진다 — field(default_factory)와 같은 이유.
함정 둘
1) 읽기만 해도 키가 생긴다.
Python
조회만 하고 싶으면 d.get(key)를 쓴다.
2) 순회 중 조회하면 크기가 바뀐다. RuntimeError: dictionary changed size during iteration이 난다.
형제들
| 클래스 | 쓰임 |
|---|---|
defaultdict | 없는 키 자동 초기화 |
Counter | 개수 세기 전용. most_common() 제공 |
OrderedDict | 순서 조작 — OrderedDict와 LRU 캐시 |
deque | 양쪽 끝 O(1) 큐 |
한 줄 정리
defaultdict는 초기화 분기를 없애는 dict이고, 조회만으로도 키가 생긴다는 것만 조심하면 된다.
관련
- Reciprocal Rank Fusion
- OrderedDict와 LRU 캐시
- field(default_factory)
- typing 모듈