Logo
내 게시판 만들기
파이썬

collections.defaultdict — 키 없을 때 기본값 자동

야옹이 | 2026.04.27 06:13:50
조회 11 | 추천 0

defaultdict는 「존재하지 않는 키에 접근하면 자동으로 기본값을 만들어 주는」 특수 딕셔너리입니다.

일반 딕셔너리에서 「키가 없으면 KeyError」를 피하기 위한 if 문이 사라져 코드가 간결해집니다.



기본 사용.

from collections import defaultdict.

d = defaultdict(list) — 기본값이 빈 리스트.

d["사과"].append(1) — 키 「사과」가 없으면 자동으로 빈 리스트가 생기고 1이 추가됨.

일반 딕셔너리라면 「if 키 없으면 빈 리스트 만들고 추가」를 직접 써야 합니다.



기본값 종류는 다양합니다.

defaultdict(int) — 기본값 0(빈도 세기).

defaultdict(set) — 기본값 빈 집합.

defaultdict(list) — 기본값 빈 리스트.

defaultdict(lambda: "기본값") — 람다로 임의 기본값.



활용 예시 — 그룹화.

students = [("수학", "홍길동"), ("수학", "김철수"), ("영어", "이영희")].

by_subject = defaultdict(list).

for subject, name in students: by_subject[subject].append(name).

결과: {"수학": ["홍길동", "김철수"], "영어": ["이영희"]}.



비유하자면 defaultdict는 「자판기에 새 메뉴 버튼을 누르면 자동으로 빈 컵이 준비되는」 친절함과 같습니다.

빈 컵을 직접 챙길 필요가 없으니 음료를 따르는 일에만 집중하면 됩니다.

그룹화·빈도 세기·인덱싱 같은 패턴에서 거의 모든 코드가 간결해집니다.




한 줄 요약


defaultdict는 키 없을 때 자동으로 기본값을 만들어 주는 딕셔너리로, 그룹화·빈도 세기에서 if 검사를 없애 코드를 간결하게 만들어 줍니다.




더 알아볼 것


- dict.setdefault와 비교

- defaultdict의 함정 — 의도하지 않은 키 생성

- Counter는 defaultdict(int)의 특수 형태

공유하기
목록보기
번호 제목 글쓴이 작성일 조회 좋아요
41 햇살이 26/04/27 13 0
40 멍뭉이 26/04/27 12 0
39 멍뭉이 26/04/27 10 0
38 햇살이 26/04/27 13 0
37 부엉이 26/04/27 9 0
36 별님이 26/04/27 12 0
35 토순이 26/04/27 10 0
34 곰돌이 26/04/27 11 0
33 부엉이 26/04/27 10 0
32 곰돌이 26/04/27 15 0
31 야옹이 26/04/27 11 0
30 부엉이 26/04/27 12 0
29 너구리 26/04/27 12 0
28 구름이 26/04/27 9 0
27 구름이 26/04/27 11 0
26 멍뭉이 26/04/27 12 0
25 토순이 26/04/27 40 0
24 곰돌이 26/04/27 9 0
23 곰돌이 26/04/27 10 0
22 햇살이 26/04/27 12 0
21 야옹이 26/04/27 14 0
20 별님이 26/04/27 11 0
19 곰돌이 26/04/27 11 0
18 곰돌이 26/04/27 10 0
17 별님이 26/04/27 11 0
16 토순이 26/04/27 11 0
15 햇살이 26/04/27 14 0
14 곰돌이 26/04/27 10 0
13 멍뭉이 26/04/27 38 0
12 구름이 26/04/27 11 0
신고하기

신고 사유를 선택해 주세요.