일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- SQL
- datacamp
- docker container
- 백준 온라인 저지
- 알고리즘
- Airflow
- BOT
- 2023년 목표
- 빅데이터를 지탱하는 기술
- Pseudo Lab
- 데이터 엔지니어
- terraform
- 백준온라인저지
- airflow architecture
- leetcode
- dsf
- docker image
- airflow webserver
- docker
- Data Engineering
- Python
- 그리디
- data_engineer
- MySQL
- delete join
- 프로그래머스
- Spark
- hackerrank
- telegram
- Dynamic Programming
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