반응형
파이썬 defaultdict, collection.defaultdict 쓰는 이유
파이썬 코드 관련 구글링을 하다보면 왕왕 defaultdict라는 내장 패키지가 사용되는 것을 볼 수 있습니다. 그들은 왜 "{", "}" 만 써도 완성되는 딕셔너리를 사용하지 않고, defaultdict를 사용할까요 ?...... 라고 생각하고 내용을 좀 서치해 보았습니다. !!! 예상할 수 없는 키 값을 추가 하고 싶을때 사용하려는 기능입니다. 기본제공 딕셔너리를 이용하여 아래 코드를 수행하면 실행이 안된다는 것을 알 수 있습니다 !In [1]:
dictionary = {
"name" : "James",
"age" : "19",
}
dictionary
Out[1]:
{'name': 'James', 'age': '19'}
In [2]:
dictionary["place"]
--------------------------------------------------------------------------- KeyError Traceback (most recent call last) /tmp/ipykernel_1009088/3851040178.py in <module> ----> 1 dictionary["place"] KeyError: 'place'
defaultdict 를 이용하면 예상할 수 없는 키 값이 추가 되어도
설정해 놓은 기본 값이 들어 갑니다.
예를 들어, defaultdict의 입력 변수로 int를 defaultdict(int)와 같이 작성하면,
예상할 수 없는 키값을 받아 드리고 디폴트로 0을 값으로 가집니다.
아래 코드를 통해 위 내용을 확인 할 수 있습니다.
In [ ]:
from collections import defaultdict
dictionary = defaultdict(int)
In [3]:
dictionary["name"] = "James"
dictionary["age"] = "19"
dictionary["place"]
dictionary
--------------------------------------------------------------------------- KeyError Traceback (most recent call last) /tmp/ipykernel_1009088/2311822844.py in <module> 1 dictionary["name"] = "James" 2 dictionary["age"] = "19" ----> 3 dictionary["place"] 4 5 dictionary KeyError: 'place'
defaultdict의 입력변수는 int 만 있는 것이 아니라 list 등도 있습니다.
list로 설정할 경우, 예상할 수 없는 키값을 받아 드리고 디폴트로 빈리스트를 값으로 가집니다.
아래 코드를 통해 위 내용을 확인 할 수 있습니다.
In [4]:
from collections import defaultdict
dictionary = defaultdict(list)
In [5]:
dictionary["name"] = "James"
dictionary["age"] = "19"
dictionary["place"]
dictionary
Out[5]:
defaultdict(list, {'name': 'James', 'age': '19', 'place': []})
반응형
'python' 카테고리의 다른 글
% 를 활용한 파이썬 포메팅 %s, %d, %f, %.자리수f 파이썬 소수점 자리수 고정 (0) | 2023.02.18 |
---|---|
파이썬 gif 파일 만들기 (imageio.mimsave) (0) | 2023.02.18 |
파이썬 rgb 색상별 추출 pillow image.split (0) | 2023.02.16 |
python pillow 이미지 줄이기 image.resize (0) | 2023.02.15 |
chatGPT 로 real-time graph 그리기 matplotlib.animation (0) | 2023.02.15 |
댓글