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 |