더북(TheBook)

19.7 defaultdict

collections 모듈에는 defaultdict라는 것도 있다. defaultdict는 사전과 비슷하지만, 사전에 없는 키에 접근하면 즉시 새로운 값을 생성한다.

defaultdict를 생성할 때 새로운 값을 만들기 위한 함수를 제공할 수 있다. 객체를 생성하기 위해 사용되는 함수를 팩토리(factory)라고 부른다. 리스트, 집합, 그외 다른 타입을 생성하는 내장 함수는 팩토리로 사용될 수 있다.

>>> from collections import defaultdict

>>> d = defaultdict(list)

인수를 보면 새로운 리스트인 list()가 아니라 클래스 객체인 list가 쓰였다. 여기서 제공하는 함수는 존재하지 않는 키에 접근하지 않으면 호출되지 않는다.

>>> t = d['new key']

>>> t

[]

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.