반응형
collections이라는 라이브러리에서는 deque와 Counter가 많이 쓰인다.
deque
deque와 list의 차이점은 시간 복잡도이다.
list의 경우는 앞쪽에 있는 값을 처리할 때 리스트 개수에 따라 시간이 많이 소요된다.
앞쪽에 값을 추가/제거 할 경우 시간 복잡도는 O(N),
뒤쪽에 값을 추가/제거 할 경우 시간 복잡도는 O(1)이 걸린다.
deque는 슬라이싱, 인덱싱이 불가능하지만 데이터를 추가/삭제할 때는 매우 효과적이다.
- popleft() : 리스트의 첫 번째 값을 제거
- pop() : 리스트의 마지막 값을 제거
- appendleft() : 리스트의 맨 앞에 값을 추가
- append() : 리스트의 마지막에 값을 추가
from collections import deque
data = deque([3,5,7])
data.appendleft(1)
data.append(9)
print(data)
# deque([1, 3, 5, 7, 9)]
Counter
counter는 등장 횟수를 세는 기능을 제공
from collections import Counter
list = Counter(['red', 'blue', 'red', 'green', 'blue', 'blue'])
print(list['red'])
print(list['blue'])
print(list['green'])
print(dict(list))
# 3
# 2
# 1
# {'red': 2, 'blue': 3, 'green': 1}
반응형
'알고리즘' 카테고리의 다른 글
그리디 알고리즘 Greedy (0) | 2021.12.22 |
---|---|
math (0) | 2021.12.21 |
파이썬(python) 17425번 약수의 합 (0) | 2021.12.21 |
파이썬(python) 2530번 인공지능 시계 (0) | 2021.12.21 |
bisect (0) | 2021.12.20 |