[TIL] Python defaultdict 간단 정리

ssook·2023년 10월 25일
0

TIL

목록 보기
13/17
post-thumbnail

참고한 파이썬 공식 문서

defaultdict 란?

collections 모듈에서 제공하는 defaultdict는 파이썬에서 제공하는 딕셔너리 자료구조를 확장한 것임. (defaultdict는 내장 dict 클래스의 하위 클래스임.)

defaultdict는 일반 딕셔너리와 비슷하지만, 키가 없는 경우 기본값을 제공할 수 있다는 특징을 가지고 있음.
defaultdict는 기본값 타입의 인자를 받아서 해당 타입의 기본값을 생성하며, 이 값은 새로운 키에 대한 초기값으로 사용됨.

예를 들어, defaultdict를 사용하여 아래와 같이 정수 기본값을 가지는 딕셔너리를 생성할 수 있음.


from collections import defaultdict  
my_dict = defaultdict(int) 
my_dict['apple'] = 5 
my_dict['banana'] = 3 
print(my_dict['cherry'])  # 출력: 0

여기서 int는 기본값을 0으로 설정한다는 것을 의미함.
즉, 'cherry' 키가 없을 때, my_dict에서 해당 키를 찾을 수 없으므로 기본값인 0이 반환됨.

defaultdict는 주로 키가 존재하지 않을 때 초기값을 설정하는 상황에서 사용함.
이러한 특징은 카운팅이나 그룹화 또는 기타 유용한 작업을 수행할 때 유용함.

defaultdict를 사용하려면 collections 모듈을 임포트해야 함.
위의 코드에서처럼 from collections import defaultdict와 같이 모듈을 임포트한 다음, defaultdict 객체를 생성할 수 있음.

요약하면, defaultdict는 일반 딕셔너리와 다르게 키가 없는 경우 기본값을 제공하며, 이를 사용하여 키의 초기값을 설정할 수 있음.
이는 collections 모듈에서 제공되며, 다양한 작업에 유용함.


추가적인 defaultdict 예제

리스트를 default_factory로 사용하여 키-값 쌍의 시퀀스를 리스트 딕셔너리로 그룹화

s = [('yellow', 1), ('blue', 2), ('yellow', 3), ('blue', 4), ('red', 1)]
d = defaultdict(list)
for k, v in s:
    d[k].append(v)

sorted(d.items())
# 출력: [('blue', [2, 4]), ('red', [1]), ('yellow', [1, 3])]

default_factoryint로 설정하여 각 키의 개수를 계산하는 방법:


s = 'mississippi'
d = defaultdict(int)
for k in s:
    d[k] += 1

sorted(d.items())
# 출력: [('i', 4), ('m', 1), ('p', 2), ('s', 4)]

default_factoryset으로 설정하여 집합 딕셔너리를 만드는 방법:


s = [('red', 1), ('blue', 2), ('red', 3), ('blue', 4), ('red', 1), ('blue', 4)]
d = defaultdict(set)
for k, v in s:
    d[k].add(v)

sorted(d.items())
# 출력: [('blue', {2, 4}), ('red', {1, 3})]
profile
개발자에서, IT Business 담당자로. BrSE 업무를 수행하고 있습니다.

0개의 댓글