How to use a deque in Python
Published on July 17, 2023
Deque Methods
Insertion
- append(item): Add an item to the right end.
- appendleft(item): Add an item to the left end.
- insert(index, value): Add an element with the specified value at the given index.
- extend(list): Insert multiple values at the right end. It takes a list of values as an argument.
- extendleft(list): Similar to
extend()
, but it reverses the list of values passed as the argument and then appends that list to the left end of the deque.
Deletion
- pop(): Remove an element from the right end.
- popleft(): Remove an element from the left end.
- remove(value): Remove the first occurrence of the mentioned value.
Miscellaneous
- count(value): Return the total number of occurrences of the given value.
- index(e, start, end): Search the given element from start to finish and return the index of the first occurrence.
- rotate(n): Rotate the deque
n
number of times. A positive value rotates it to the right, while a negative value rotates it to the left. - reverse(): Reverse the order of the deque.
# Import collections module:
import collections
# Initialize deque:
dq = collections.deque([4, 5, 6])
# Append to the right:
dq.append(7)
print("Append 7 to the right: ", list(dq))
# Append to the left:
dq.appendleft(3)
print("Append 3 to the left: ", list(dq))
# Append multiple values to right:
dq.extend([8, 9, 10])
print("Append 8, 9 and 10 to the right: ", list(dq))
# Append multiple values to left:
dq.extendleft([1, 2])
print("Append 2 and 1 to the left: ", list(dq))
# Insert -1 at index 5
dq.insert(5, -1)
print("Insert -1 at index 5: ", list(dq))
# Pop element from the right end:
dq.pop()
print("Remove element from the right: ", list(dq))
# Pop element from the left end:
dq.popleft()
print("Remove element from the left: ", list(dq))
# Remove -1:
dq.remove(-1)
print("Remove -1: ", list(dq))
# Count the number of times 5 occurs:
i = dq.count(5)
print("Count the number of times 5 occurs: ", i)
# Return index of '7' if found between index 4 and 6:
i = dq.index(7, 4, 6)
print("Search index of number 7 between index 4 and 6: ", i)
# Rotate the deque three times to the right:
dq.rotate(3)
print("Rotate the deque 3 times to the right: ", list(dq))
# Reverse the whole deque:
dq.reverse()
print("Reverse the deque: ", list(dq))