- 큐를 양방향으로 쓸 수 있게 만든 자료구조
- 양 끝 엘리먼트에 대해서 append 와 pop이 가능함
- 스택과 큐를 동시에 사용 가능
from collections import deque
# 덱 선언
deq = deque()
# 0 ~ 5 까지 덱 추가
for i in range(5) :
deq.append(i) # [0,1,2,3,4]
# 왼쪽 방향 값 추가
deq.appendleft(2) # [2, 0,1,2,3,4]
# 오른쪽 방향값 추출
pop = deq.pop() # [2, 0,1,2,3]
print(pop) # 4
# 왼쪽 방향값 추출
lpop = deq.popleft() # [0,1,2,3]
print(lpop) # 2
from collections import deque
queue = deque()
queue.append('b')
# queue = ['b']
queue.append('c')
# queue = ['b', 'c']
queue = deque()
queue.append('b')
# queue = ['b']
queue.append('c')
# queue = ['b', 'c']
queue.appendleft('a')
# queue = ['a', 'b', 'c']
queue = deque()
queue.append('b')
# queue = ['b']
queue.append('c')
# queue = ['b', 'c']
queue.appendleft('a')
# queue = ['a', 'b', 'c']
queue.clear()
# queue = []
queue = deque()
queue.append('b')
# queue = ['b']
copied_queue = queue.copy()
# copied_queue = ['b']
queue = deque()
queue.append('b')
# queue = ['b']
queue.append('a')
# queue = ['b', 'a']
queue.appendleft('a')
# queue = ['a', 'b', 'a']
print(queue.count('a'))
# 2
queue = deque()
queue.append('b')
# queue = ['b']
queue.extend('lft')
# queue = ['b', 'l', 'f', 't']
queue.append('lft')
# queue = ['b', 'l', 'f', 't', 'lft']
queue = deque()
queue.append('b')
# queue = ['b']
queue.extendleft('lft')
# queue = ['t', 'f', 'l', 'b']
queue.apendleft('lft')
# queue = ['lft', 't', 'f', 'l', 'b']
a = [1, 2, 1, 2, 1, 2]
print(a.index(2))
# 1
print(a.index(2, 3))
# 3
print(a.index(2, 2, 3))
# ValueError: 2 is not in list
queue = deque()
queue.append('b')
# queue = ['b']
queue.append('c')
# queue = ['b','c']
queue.insert(0, 'a')
# queue = ['a', 'b', 'c']
queue = deque()
queue.append('b')
# queue = ['b']
queue.append('c')
# queue = ['b', 'c']
poped = queue.pop()
# poped = 'c'
queue = deque()
queue.append('b')
# queue = ['b']
queue.append('c')
# queue = ['b', 'c']
pop_left = queue.popleft()
# pop_left = 'b'
queue = deque()
queue.append('b')
# queue = ['b']
queue.append('c')
# queue = ['b','c']
queue.append('b')
# queue = ['b', 'c', 'b']
queue.remove('b')
# queue = ['c', 'b']
queue = deque()
queue.append('c')
# queue = ['c']
queue.append('b')
# queue = ['c', 'b']
queue.append('a')
# queue = ['c', 'b', 'a']
queue.reverse()
# queue = ['a', 'b', 'c']
queue = deque()
queue.append('c')
# queue = ['c']
queue.append('b')
# queue = ['c', 'b']
queue.append('a')
# queue = ['c', 'b', 'a']
queue.rotate(1)
# queue = ['a', 'c', 'b']
queue.rotate(-1)
# queue = ['c', 'b', 'a']
# 최대 크기를 정했을 때
queue = deque('lft', 3)
print(queue)
# deque(['l', 'f', 't'], maxlen=3)
queue.append('b')
print(queue)
# deque(['f', 't', 'b'], maxlen=3)
queue.append('c')
print(queue)
# deque(['t', 'b', 'c'], maxlen=3)
queue.appendleft('a')
print(queue)
# deque(['a', 't', 'b'], maxlen=3)
print(deque.maxlen)
# 3
# 최대 크기를 정하지 않았을 때
queue = deque('lft', 3)
print(queue)
# deque(['l', 'f', 't'])
queue.append('b')
print(queue)
# deque(['l', 'f', 't', 'b'])
queue.append('c')
print(queue)
# deque(['l', 'f', 't', 'b', 'c'])
queue.appendleft('a')
print(queue)
# deque(['a', 'l', 'f', 't', 'b', 'c'])
print(queue.maxlen)
# None
https://docs.python.org/3/library/collections.html#collections.deque