본문 바로가기

컴퓨터/파이썬 알고리즘 인터뷰

4. defaultdict 객체

defaultdic 객체는 존재하지 않는 키를 조회할 경우, 에러 메시지를 출력하는 대신 디폴트 값을 기준으로 해당 키에 대한 딕셔너리 아이템을 생성해준다

실제로는 collections.defaultdict 클래스를 갖는다.

import collections
a = collections.defaultdict(int)
a['A'] = 5
a['B'] = 4
print(a)
>> defaultdict(<class 'int'>, {'A': 5, 'B': 4})

여기에 존재하지 않는 key인 'C'에 value를 +=1 해보자.

원래라면 KeyError가 발생해야 하지만 에러가 발생하지 않고 다음과 같이 생성된다.

import collections
a = collections.defaultdict(int)
a['A'] = 5
a['B'] = 4
a['C'] += 1
print(a)
>> defaultdict(<class 'int'>, {'A': 5, 'B': 4, 'C': 1})

 


import collections
a = collections.defaultdict(int)
a['A'] = 5
a['B'] = 4
a['C'] += 1
print(len(a))
>> 3
for i,v in a.items():
    print(a[i], v)
>> 5 5
>> 4 4
>> 1 1

다음과 같이 딕셔너리에 사용되는 내장함수들도 잘 작동하는 것을 알 수있다.

단, a는 딕셔너리 클래스가 아닌 다른 클래스이다.

 

import collections
a = collections.defaultdict(int)
b = dict()
a['A'] = 5
a['B'] = 4
a['C'] += 1
print(type(a))
>>> <class 'collections.defaultdict'>
print(type(b))
>>> <class 'dict'>

이 차이에만 유념하자!

'컴퓨터 > 파이썬 알고리즘 인터뷰' 카테고리의 다른 글

6. 문자열 슬라이싱  (0) 2020.08.25
5. Palindrome  (0) 2020.08.25
3. is와 ==  (0) 2020.08.24
2. pass  (0) 2020.08.24
1. print()  (0) 2020.08.24