알고리즘 공부💥/본연의 알고리듬

[알고리듬] 파이썬 라이브러리 deque

hyunsix 2021. 9. 24. 22:30
  • 데크(deque)는 양방향 큐이다.
  • 양쪽 방향에서 요소를 추가하거나 제거할 수 있다.
  • 즉 일반적인 리스트의 경우 pop()보다 pop(0)을 할 경우 메모리 사용량이 늘어난다. 그 이유는 pop(0)의 경우 pop(0)을 하고 리스트를 맨 끝부터 앞으로 한 칸 씩 이동시키는 작업을 하기 때문이다.
    • 그런데 deque는 양방향 큐니깐 pop(0)이나 pop()이나 똑같다는 뜻!
  • 즉 deque를 쓸 경우 확률상 양 끝 엘리먼트의 append와 pop이 압도적으로 빠르다.
  • 심지어 사용법도 쉬움.. 앞으로 deque에 익숙해지도록 하자
from collections import deque

deq = deque()

# 리스트 맨 앞에 요소 추가
deq.appendleft('요소')

# 리스트 뒤에 요소 추가 (일반적인 append)
deq.append('요소')

# 리스트 맨 앞에 요소 제거 (일반적인 pop(0))
deq.popleft()

# 리스트 맨 뒤에 요소 제거 
deq.pop()