프로그래밍 연습하기

파이썬 Defaultdict 본문

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로 깔끔하게 할 수 있었네요.

 

파이썬을 그나마 좀 많이 사용해봤는데

역시 아직도 모르는 것이 많은 것 같습니다.

반응형
Comments