Language/python

[python] dict.setdefault / collections.defaultdict

khakhalog 2023. 4. 27. 17:30

python으로 해쉬 알고리즘 문제를 풀다보면 딕셔너리를 사용하게 된다.

python colletions에서 제공하는 defaultdict 클래스를 사용하면 모든 키값에 대해 기본값을 설정해줄 수 있다.

 

1. 일반적인 딕셔너리 기본값 처리

def countLetters(word):
	counter = {}
    for w in word:
    	if w not in counter:
        	counter[w] = 0
        counter[w] += 1
    return counter

2. dict.setdefault 기본값 처리

if절을 쓰지 않고, python의 dict 자료구조에서 제공하는 setdefault를 사용해서 기본값을 처리해줄 수 있다.

 

더보기

  dict.setdefault(key [, default])

- key 가 딕셔너리에 있으면 해당 값을 돌려줍니다.

- 그렇지 않으면, default 값을 갖는 key 를 삽입한 후 default 를 돌려줍니다.

- default 의 기본값은 None 입니다.

def countLetters(word):
	counter = {}
    for w in word:
    	counter.setdefault(w, 0)
        counter[w] += 1
    return counter

3. colletions.defaultdict 기본값 처리

더보기

 collections.defaultdict(default_factory=None/[...])

- 첫 번째 인자로 int, list, set 등을 넘겨주면, 모든 키에 대해 해당 기본값으로 설정해준다.

from collections import defaultdict

def countLetters(word):
	counter = defaultdict(int)
    for w in word:
    	counter[w] += 1
    return counter

 

'Language > python' 카테고리의 다른 글

[python] set hashable  (0) 2023.06.23
[python] 소수점 n번째 자리까지 0으로 채우기  (0) 2023.01.06