Python
파이썬 Defaultdict
john.k
2021. 4. 1. 14:25
반응형
파이썬 Collections 에 defaultdict라는 것이 있습니다.
어디선가 몇 번 본 기억은 있는데 그냥 별 생각 없이 지나쳤었는데,
얼마 전 관련 글을 좀 보니까 상당히 편리한 Container 임을 알게 되었습니다.
예를 들어 어떤 문자열에서 알파벳의 수를 셀 때
일반 dict() 의 경우 알파벳들을 먼저 키로 등록 해두던가
아니면 문자열을 돌면서
먼저 해당 알파벳이 키로 있는지 없는지 확인하고 없으면 값을 1로 해주고
있는 경우 값을 1 추가해주는 그런 번거로운 방식을 써야되는데
my_dict = dict()
my_string = "abc"
for s in my_string:
if my_dict.get(s):
my_dict[s] += 1
else:
my_dict[s] = 1
defaultdict의 경우
my_dict = defaultdict(int)
위 처럼 기본 타입을 지정해주면
키가 없더라도 그냥 값을 1 증가시켜주면 키가 생성되면서 기본값 0에 1이 추가됩니다.
from collections import defaultdict
my_dict = defaultdict(int)
my_string = "abc"
for s in my_string:
my_dict[s] += 1
딕셔너리를 이렇게 사용할 때가 많았는데,
defaultdict로 깔끔하게 할 수 있었네요.
파이썬을 그나마 좀 많이 사용해봤는데
역시 아직도 모르는 것이 많은 것 같습니다.
반응형