# deque -list-like container with fast appends and pops on either end
from collections import deque
queue = deque() # create deque
queue.append(2) # append right
queue.appenleft(1) # append left
queue.clear() # remove all elements --> len = 0
copy_queue = queue.copy() # create a shallow copy of the deque
queue.count(x) # count the number of deque elements equal to x
queue.extend([4, 5, 6]) # extend right by an iterable
queue.extendleft([1, 2, 3]) # extend left by an iterable
# More at: https://docs.python.org/3/library/collections.html#collections.deque
# Python code to demonstrate deque
from collections import deque
# Declaring deque
queue = deque(['name','age','DOB'])
print(queue)
from collections import deque
arr = deque([1, 2])
# append left
arr.appendleft(1)
# append right
arr.append(3)
# count number of 1's in deque
print(arr.count(1))
# output 2
# added 3 new number to the left of deque
arr.extendleft([-1, -2, -3])
print(arr)
# output deque([-3, -2, -1, 1, 1, 2, 3])
# added 3 new number to the right of deque
arr.extend([4, 5, 6])
print(arr)
# output deque([-3, -2, -1, 1, 1, 2, 3, 4, 5, 6])
# insert 10 in the 3rd position
arr.insert(2, 10)
print(arr)
# output deque([-3, -2, 10, -1, 1, 1, 2, 3, 4, 5, 6])
# remove and return far right element
print(arr.pop())
# output 6
# remove and return far left element
print(arr.popleft())
# output -3
# reverse deque
arr.reverse()
print(arr)
# output deque([5, 4, 3, 2, 1, 1, -1, 10, -2])
# deque -list-like container with fast appends and pops on either end
from collections import deque
queue = deque() # create deque
queue.append(2) # append right
queue.appenleft(1) # append left
queue.clear() # remove all elements --> len = 0
copy_queue = queue.copy() # create a shallow copy of the deque
queue.count(x) # count the number of deque elements equal to x
queue.extend([4, 5, 6]) # extend right by an iterable
queue.extendleft([1, 2, 3]) # extend left by an iterable