더북(TheBook)

BETTER WAY 17 내부 상태에서 원소가 없는 경우를 처리할 때는 setdefault보다 defaultdict를 사용하라

직접 만들지 않은 딕셔너리를 다룰 때 키가 없는 경우를 처리하는 방법에는 여러 가지가 있다(Better way 16: ‘in을 사용하고 딕셔너리 키가 없을 때 KeyError를 처리하기보다는 get을 사용하라’ 참고). get 메서드를 사용하는 방법이 inKeyError를 사용하는 방법보다 낫지만, 경우에 따라서는 setdefault가 가장 빠른 지름길일 수도 있다.

예를 들어 방문했던 세계 각국의 도시 이름을 저장하고 싶다고 하자. 다음과 같이 나라 이름과 방문한 도시 이름으로 이뤄진 집합을 연관시키는 딕셔너리를 사용한다.

visits = {
    '미국': {'뉴욕', '로스엔젤레스'},
    '일본': {'하코네'},
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.