[Python] defaultdict

EB·2021년 6월 7일

dictionary의 key가 없는경우

  • in 식을 사용
  • KeyError 예외사용
  • get 메서드 사용
  • setdefault사용

setdefault가 적합한 경우 defaultdict사용 고려

from collections import defaultdict

dict_int = defaultdict(int)
dict_int

defaultdict(<class 'int'>, {})

이렇게 default값이 int인 dictionary가 생성됨

setdefault vs defaultdict

setdefault 를 사용할경우

class Visits:
    def __init__(self):
    	self.data = {}
    
    def add(self, country, city):
    	city_set = self.data.setdefault(country, set())
    	city_set.add(city)

defaultdict를 사용할 경우

from collections import defaultdict

class Visits:
    def __init__(self):
    	self.data = {}
    
    def add(self, country, city):
    	self.data[country].add(city)

self.data[country].add(city)

add 구현이 더 짧고 간단해진다

참고자료

  • 파이썬 코딩의기술 2판

0개의 댓글