일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- Python
- SQL
- 백준 온라인 저지
- 프로그래머스
- docker image
- 백준온라인저지
- docker
- Spark
- 그리디
- data_engineer
- airflow webserver
- BOT
- Airflow
- telegram
- delete join
- leetcode
- 2023년 목표
- 알고리즘
- datacamp
- airflow architecture
- hackerrank
- 빅데이터를 지탱하는 기술
- Pseudo Lab
- Data Engineering
- 데이터 엔지니어
- terraform
- dsf
- docker container
- Dynamic Programming
- MySQL
Archives
- Today
- Total
Lim Seunghyun Space
defaultdict 본문
개요
- 딕셔너리에 없는 키에 접근할 때 특정 기본값을 지정해주기 위해 사용
- defaultdict는 collections안에 구현
생성 방법
from collections import defaultdict
sample = defaultdict() # defaultdict에 default 값을 지정해주지 않으면 없는 key 접근시 KeyError가 발생한다.
# print(sample["one"]) >> KeyError 발생
default = dict
sample2 = defaultdict(default) # defaultdict(Default Value) # Default Value는 무조건 callable 해야한다.
print(sample2["one"])
- defaultdict(default)으로 생성하며 default가 비어있는 경우 나중에 KeyError 가 발생
- default로 지정해줄시 해당 기본값은 callable 해야한다.
- callable이란
- 객체에 __call__ 이 구현되어 있어 호출이 가능한 형태
- list, dict 등이 callable 하며 사용자 클래스 내부에도 __call__ 만 구현되어 있으면 callable 해지며 defaultdict에서 default로 사용할 수 있다.
- callable(대상) : 대상이 callable한지 판단 (callabe 하면 True / 아니면 False)
- callable이란
키 작동 방식
- 해당 키가 있는지 확인
- 있으면 해당 키와 매핑된 값을 리턴
- 없으면
- default_factory 을 호출하여 기본값 생성
- 생성한 기본값을 해당 키와 매핑
주의
- defaultdict은 dict[key] 와 같은 __getitem__ 에 대한 기본값 제공을 위해 호출되며 in을 사용하는 __contain__ 이나 get()에는 영향을 미치지 않는다
728x90