본문 바로가기
파이썬/리스트, 딕셔너리

defaultdict에 대하여

by 인공지능 초년생 2022. 2. 23.

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