728x90
반응형
전편
☞ 2022.10.07 - [Data Engineering/파이썬] - 파이썬 클린 코드 #1: enumerate, with, is, R-String, F-String
전편에 이은 파이썬 클린코드, 오늘은 딕셔너리 편이다.
파이썬 딕셔너리 사용 가이드
1. get()과 setdefault()를 쓰기
딕셔너리에서 키를 통해 밸류에 접근하는 법은 get()을 쓰는 법과 []를 쓰는 법 두가지가 있다. 하지만 []를 쓰면 해당하는 키다 없는 경우에는 KeyError가 뜨게된다. 하지만 get()을 쓰면 키가 없을 때 반환할 밸류를 설정할 수 있다. 아래 코드는 'cat'이라는 키가 딕셔너리에 없을 경우 0을 반환한다.
# get(key, defulat value)
numOfCat = numOfAnimal.get('cat', 0)
setdefault() 함수를 사용하면 딕셔너리에 키 존재 여부를 판단 후 키가 없을 때 디폴트 밸류를 가지도록 설정할 수 있다. 아래 코드는 딕셔너리가 'cat'이라는 키를 가지고 있으면 아무 동작도 안하지만 키가 없으면 'cat'이라는 키를 생성한 후 밸류를 0으로 설정한다.
# setdefault(key, defulat value)
numOfCat = numOfAnimal.setdefault('cat', 0)
2. collection의 defaultdict 사용하기
get()이나 setdefault()를 쓰지 않고도 KeyError를 없앨 수 있는 방법이 있다. collections 모듈의 defaultdict을 사용하는 것이다. defaultdict 타입의 딕셔너리를 생성하면 생성당시 건네준 밸류의 타입에 따라 모든 키에 대해 자동으로 티폴트 값이 정해진다.
아래 코드는 defaultdict을 사용하는 예시로 딕셔너리 생성 때 int 값을 타입으로 넘겨준다. 그러면 모든 키에 대해 0이 디폴트 값으로 설정된다.
from collections import defaultdict
# defaultdict(type)
numOfAnimal = defaultdict(int)
numOfAnimal['cat'] += 10
print(numOfAnimal['cat'])
>> 10
print(numOfAnimal['dog']
>> 0
다음편
☞
728x90
반응형
'Data Engineering > 파이썬' 카테고리의 다른 글
파이썬 *args, **kwargs (파이썬 클린 코드 #4) (0) | 2022.10.18 |
---|---|
파이썬 String 합치기, String concatenation, join 함수 (파이썬 클린 코드 #3) (0) | 2022.10.12 |
파이썬 enumerate, with, is, R-String, F-String (파이썬 클린 코드 #1) (0) | 2022.10.07 |
환경변수란? 환경변수 설정(윈도우, 맥OS, 리눅스) (0) | 2022.10.06 |
파이썬 코딩 컨벤션 - 네이밍 컨벤션 (0) | 2022.09.22 |
댓글