collection이란 모듈에는다양한 라이브러리들이 있다.
그중에서 딕셔너리와 비슷한defaultdict를 써보려고 한다.
from collections import defaultdict
d = defaultdict(int)
과정
1. 컬렉션에서 딕셔너리를 가져온다.
2. 변수를 지정하고 defaultdict()를 한다음 안에 value의 값의 형태를 지정해주면 된다.
활용)
모듈에서 counter()처럼 이용할 수 있다.
d = defaultdict(int)
list_example = [1, 2, 1, 1, 2, 3]
for number in list_example:
d[number] += 1
print(d)
이렇게 만드는 순간! 딕셔너리처럼 원소를 생성할 수 있다.
과정)
1. 리스트에서 number을 하나씩 받는다.
2. 딕셔너리에서 키에 해당하는 number이 나오면 value를 +1을 해준다.
[1, 2, 1, 1, 2, 3]
number = 1
d = {'1': 1}
number = 2
d = {'1': 1, '2': 1}
number = 1
d = {'1': 2, '2': 1} -> 1에서 2로 바뀌는 것을 볼 수 있다.
number = 1
d = {'1': 3, '2': 1} -> 1이 한 번 더 나와서 2에서 3으로 값이 올라가는 것을 볼 수 있다.
number = 2
d = {'1': 3, '2': 2} -> 이번에는 2가 나와서 1에서 2가 되었다.
number = 2
d = {'1': 3, '2': 2, '3': 1} ->3이 추가되는 모습이다.
호출하는 방법:
dictionary['key']인 걸 이용하면 된다.
d[0] -> error
d[1] = 3
d[2] = 2
d[3] = 1
신기한 기능:
pop이 가능하다.
dictionary.pop(key)를 하면 key값과 value값이 날라간다.
질문: counter()을 하면 알아서 나오는데 왜 딕셔너리를 또 만들었냐?
원소를 순차적으로 돌리면서 한개씩 count를 할 수 있기 때문이다.
리스트의 원소를 하나씩 꺼내면서 특정한 조건을 만족할때 count += 1
이런식으로 알고리즘에서 많이 사용되는 경향이 있다.
'파이썬 > 리스트, 딕셔너리' 카테고리의 다른 글
defaultdict: list를 다뤄보자 (0) | 2022.02.27 |
---|---|
빈 리스트 확인 법 (0) | 2022.02.13 |
리스트 슬라이싱 (0) | 2022.02.12 |
리스트의 시작 (0) | 2022.02.12 |