콘텐츠로 건너뛰기

파이썬 defaultdict 사용 방법

[

Python defaultdict 사용하여 누락된 키 처리하기

이 튜토리얼에서는 다음 내용을 배우게 됩니다:

  • 사전에서 누락된 키를 처리하기 위해 Python defaultdict 타입을 사용하는 방법
  • 그룹화, 카운팅, 누적 작업을 위해 defaultdict를 사용하는 방법

이러한 지식을 습득한 후에는 일상적인 프로그래밍 도전 과제에서 Python defaultdict 타입을 효과적으로 사용할 수 있게 될 것입니다.

무료 보너스: Python 기본 사항을 습득하고 데이터 유형, 사전, 리스트, Python 함수 등에 대한 기본 지식을 학습하려면 여기를 클릭하여 Python Cheat Sheet를 받으세요.

사전에서 누락된 키 처리하기

# 예제 1
d = {}
if key in d:
value = d[key]
else:
value = default_value
d[key] = value
# 예제 2
d = {}
try:
value = d[key]
except KeyError:
value = default_value
d[key] = value
# 예제 3
d = {}
if key not in d:
d[key] = default_value
value = d[key]
# 예제 4
from collections import defaultdict
d = defaultdict(lambda: default_value)
value = d[key]

여기서는 예제 4처럼 defaultdict를 사용하여 누락된 키를 처리하는 방법에 대해 자세히 알아보겠습니다.

Python defaultdict 타입 이해하기

Python의 defaultdict 타입은 거의 일반적인 Python 사전과 동일하게 동작합니다. 그러나 missing key를 액세스하거나 수정하려고 할 때, defaultdict는 자동으로 키를 생성하고 그에 대한 기본값을 생성합니다. 이로써 우리는 사전에 존재하지 않는 키를 처리하기 위해 번거로운 예외 처리를 작성할 필요없이 편리하게 작업할 수 있습니다.

defaultdict 객체를 생성할 때는 default_factory 인자에 기본값을 생성하는 함수를 전달해야 합니다. 이 함수는 자동으로 생성되는 기본값을 정의합니다. 예를 들어, default_factory 인자로 int를 전달하면 기본값으로 0을 생성하는 defaultdict 객체를 생성할 수 있습니다.

from collections import defaultdict
d = defaultdict(int)
print(d["key"]) # 출력: 0

이제 누락된 키인 “key”에 접근하여 값을 액세스하려고 하면, 기본값으로 0이 자동으로 생성되어 출력됩니다.

Python defaultdict는 다양한 용도로 사용될 수 있습니다. 이제 몇 가지 예제를 통해 그 사용법을 자세히 알아보겠습니다.