[python] collections 모듈의 defaultdict

Minhee kang·2021년 7월 1일
0

Python

목록 보기
4/25
from collections import defaultdict

#defaultdict은 기본값을 지정한 딕셔너리
#키가 존재하지 않을 때, 에러를 내지 않고 키: 기본값 만듬
#이런 비슷한 역할 하는것이 일반적인 딕셔너리의 함수에 있음  
# -> 딕셔너리.get(key, 키가 없을때 값) / 딕셔너리.setdefault(key, 값) 

#기본값이 int형 ---------------------------------------------------------
dic1 = defaultdict(int)
for key in ['a', 'b', 'c', 'a', 'd', 'c']:
    dic1[key] += 1
print(dic1)  #defaultdict(<class 'int'>, {'a': 2, 'b': 1, 'c': 2, 'd': 1})


#기본값이 list형 ---------------------------------------------------------
dic2 = defaultdict(list)
name_list = [('kang', 'minhee'), ('kang', 'minji'), ('kim', 'yuna'), ('park', 'jisung')]
for first, second in name_list:
    dic2[first].append(second)
print(dic2)  #defaultdict(<class 'list'>, {'kang': ['minhee', 'minji'], 'kim': ['yuna'], 'park': ['jisung']})

#기본값이 set형 ---------------------------------------------------------
dic3 = defaultdict(set)
name_list = [('kang', 'minhee'), ('kang', 'minji'), ('kim', 'yuna'), ('park', 'jisung')]
for first, second in name_list:
    dic3[first].add(second)    #set은 add()로 원소 추가
print(dic3)  #defaultdict(<class 'set'>, {'kang': {'minhee', 'minji'}, 'kim': {'yuna'}, 'park': {'jisung'}})

#기본값을 원하는값으로 지정 ---------------------------------------------------------
dic4 = defaultdict(lambda: 3)
for key in ['a', 'b', 'c', 'a', 'd', 'c']:
    dic4[key] += 1
print(dic4)  #defaultdict(<function <lambda> at 0x105455430>, {'a': 5, 'b': 4, 'c': 5, 'd': 4})

0개의 댓글