다행히 collections 내장 모듈에 있는 defaultdict 클래스는 키가 없을 때 자동으로 디폴트 값을 저장해서 이런 용법을 간단히 처리할 수 있게 해준다. 여러분이 해야 할 일은 키가 없을 때 디폴트 값을 만들기 위해 호출할 함수를 제공하는 것뿐이다(Better way 38: ‘간단한 인터페이스의 경우 클래스 대신 함수를 받아라’의 예제 참고). 다음 코드는 defaultdict를 사용해 Visits 클래스를 다시 작성한 것이다.
from collections import defaultdict class Visits: def __init__(self): self.data = defaultdict(set) def add(self, country, city): self.data[country].add(city) visits = Visits() visits.add('영국', '바스') visits.add('영국', '런던') print(visits.data) >>> defaultdict(<class 'set'>, {'영국': {'바스', '런던'}})