📍참고
https://docs.python.org/ko/3/library/collections.html#deque-objects
collections — Container datatypes
Source code: Lib/collections/__init__.py This module implements specialized container datatypes providing alternatives to Python’s general purpose built-in containers, dict, list, set, and tuple.,,...
docs.python.org
📍Deque 란?
- 스택 + 큐
- head, tail에서 원소 추가, 삭제가 O(1)에 가능
- 예시
from collections import deque
d = deque()
# deque("abc") # split해서 덱에 넣음
# 배열을 매개변수로 넣을 경우 원소들이 나열되어 덱에 들어감
# tail에 원소 추가
d.append("A")
d.append("B")
print(d) # deque(['A', 'B'])
# head에 원소 추가
d.appendleft("C")
d.appendleft("O")
print(d) # deque(['O', 'C', 'A', 'B'])
# tail에서 원소 제거
d.pop()
print(d) # deque(['O', 'C', 'A'])
# head에서 원소 제거
d.popleft()
print(d) # deque(['C', 'A'])
# list로 만들기
print(list(d)) # ['C', 'A']
# 뒤집기 -> 원본 변경 X
reversed(d)
# 탐색
print("Z" in d) # False
# concat 처럼 붙이기
d.extend("def")
print(d) # deque(['C', 'A', 'd', 'e', 'f'])
# rotate
d.rotate(1)
print(d) # deque(['f', 'C', 'A', 'd', 'e'])
d.rotate(-2)
print(d) # deque(['A', 'd', 'e', 'f', 'C'])