※ 파이썬 내장모듈에서는 따로 스택 라이브러리가 존재하지 않는다.
※ deque : 양방향 큐, 큐의 전단(front)와 후단(rear)에서 모두 삽입 및 삭제 가능
from collection import deque
dq = deque() #or deque(기존 리스트)
dq.append() # 덱의 오른쪽에 원소 삽입
dq.appendleft() # 덱의 왼쪽에 원소 삽입
dq.insert(i,e) # i번째에 e삽입
dq.extend(리스트) # 오른쪽에 리스트 삽입
dq.extendleft(리스트) # 왼쪽에 리스트 삽입
dq.popleft() # 왼쪽 원소 제거 및 반환
dp.pop() # 오른쪽 원소 제거 및 반환
dp.clear() # 모든 원소 제거
dp.copy() # 덱 복사
dp.count(x) # x와 같은 원소의 개수를 계산
dp.reverse() # 덱 요소를 뒤집음
list(dp) # dp를 리스트로 사용
from queue import Queue
from queue import LifoQueue
from queue import PriorityQueue
Q = Queue()
L = LifoQueue()
P = PriorityQueue()
Q.put() # 데이터 삽입 (뒤부터)
Q.get() # 데이터 삭제 및 반환
Q.qsize() # 요소 개수 (= len)
L.put() # 데이터 삽입 (뒤부터)
L.get() # 데이터 삭제 및 반환 (뒤부터)
L.qsize() # 요소 개수
P.put((1, "a"))
P.put((3, "c"))
P.put((2, "b"))
P.get() # (1, "a")
P.get() # (2, "b")
P.qsize() # 요소 개수
P.empty() # 원소가 들어있는지 확인 (비어있으면 True)
# 위의 결과를 역순으로 반환하고 싶다면,
P.put((-1, "a"))
P.put((-3, "c"))
P.put((-2, "b"))
print(P.get()[1]) # "c"
print(P.get()[1]) # "b"
참고
https://mong9data.tistory.com/36
https://cocobi.tistory.com/204