본문 바로가기
공부/Python

[Python] 파이썬 defaultdict() 함수 ?

by 병진들 2017. 11. 3.

[Python] 파이썬 defaultdict() 함수 ?


코딩도장에서 문제를 풀다가 Collection모듈에서 defaultdict()함수를 사용하는걸 봤다.

공부할 겸 정리.


Collection 에서 불러오기

from collections import defaultdic



defaultdic() 이라는 함수는 dictionary에 기본값을 정의하고 키값이 없더라도 에러가 나지 않고 그냥 기본값만 출력해준다.


Default dictionary를 생성하고, 기본값(Default값 설정)

d = defaultdict(object)

d = defaultdict(lambda : 0 ) # Default 값 0으로 설정



이제 생성한 dictionary인 d에다가 키이름을 붙여주면, 키값을 따로 설정하지 않아도 에러가 나지 않는다.


예를들어 


d['stupid'] 


이렇게 콘솔창에 입력할 경우, 원래라면 키값이 존재하지 않아서 KeyError 를 호출하지만 


d = defaultdict(object)

d = defaultdict(lambda : 0 )

d['stupid'] 


이렇게 선언해주면 앞으로 모든 키들이 키값으로 기본값 0 을 갖게 되므로 에러가 나지 않는다.



이 모듈을 이용한 간단한 문제

1부터 1000까지 각 숫자의 갯수를 구하는 코드를 짜보자

 

from collections import defaultdict


d = defaultdict(int)    # defaultdict을 위 설명과 다르게 int 형으로 입력해주고

for n in range(1, 1001):    # 범위 설정

    for x in str(n):        # int n을 문자로 변환하고 변환된 문자n을 x에 넣는다.

        d[x] += 1            


print(d)






댓글