아이템 27
내부 상태에서 원소가 없는 경우를 처리할 때는 setdefault보다 defaultdict를 사용하라
직접 만들지 않은 딕셔너리를 다룰 때 키가 없는 경우를 처리하는 방법에는 여러 가지가 있다(아이템 26 “in을 쓰고 딕셔너리 키가 없는 경우를 KeyError로 처리하지 말고 get을 사용하라” 참조). get 메서드를 사용하는 방법이 in과 KeyError를 사용하는 방법보다 낫지만, 경우에 따라서는 setdefault가 가장 간결한 지름길일 수도 있다.
예를 들어 방문했던 세계 각국의 도시 이름을 저장하고 싶다고 하자. 다음과 같이 나라 이름과 방문한 도시 이름으로 이뤄진 집합을 연관시키는 딕셔너리를 사용하겠다.
visits = {
"한국": {"대전", "안동"},
"일본": {"하코네"},
}