defaultdict는 collections라는 내장 dictionary에 포함되어 있습니다. 이는 함수 이름 그대로, default 값을 가진 dict를 자동으로 만들어 줍니다.
ex)
list_a = ['a', 'a', 'a', 'a', 'a', 'a', 'a', 'b', 'b', 'b', 'b', 'b',
'a', 'a', 'a', 'a', 'c', 'c', 'c', 'c', 'c', 'e', 'e', 'e', 'c', 'c', 'c']
from collections import defaultdict
count = defaultdict(int) # count는 어떤 key값을 받을 때 자동적으로 value의 기본값을 int로 하게 됨
for word in list_a:
count[word] += 1
print(dict(count))
# 출력 값
# {'a': 11, 'b': 5, 'c': 8, 'e': 3}
위 상황에서 count['a']를 입력하는 경우, 자동적으로 count = {'a' : 0}이 됩니다. 위의 코드에서는 어떤 단어가 올 때마다 +1을 해줌으로서 단어의 빈도수를 확인할 수 있습니다.
위의 방법을 사용해도 되지만, collections 내장 dictionary에 포함되어있는 Counter를 사용한다면 더 간단하게 단어의 빈도수를 계산할 수 있을 것입니다.
ex)
from collections import Counter
list_a = ['a', 'a', 'a', 'a', 'a', 'a', 'a', 'b', 'b', 'b', 'b', 'b',
'a', 'a', 'a', 'a', 'c', 'c', 'c', 'c', 'c', 'e', 'e', 'e', 'c', 'c', 'c']
count = Counter(list_a)
print(dict(count))
결과 값은 defaultdict를 사용했을 경우와 동일합니다.
'python' 카테고리의 다른 글
12. Extra Data Structure - 3, OrderedDict (0) | 2021.01.13 |
---|---|
11. Extra Data Structure - 2, deque (0) | 2021.01.13 |
9. python, 스레드(thread) (0) | 2021.01.13 |
8. python, 파이썬에서의 병렬처리(subprocess) (0) | 2021.01.13 |
7. python, 추상 클래스 (0) | 2021.01.13 |
댓글