Last Updated on August 30, 2022 by Gokul Kannan
Both Queue and Deque are present in the built-in modules Queue and Collections in Python, both of them are widely used data structures, but they are used for different purposes. Although both are different and used for very different purposes, they are in a way linked to each other in terms of complete functionality. In this article ,we will discuss the difference between both on the basis of usability, execution time, working, implementation, etc. in Python.
queue.Queue
Queue is present in the queue module in Python which works on the FIFO (First in First out) property. As the name suggests in Queue, the element inserted at first will be removed first. It is used to implement multi-producer, multi-consumer queues and it is very useful in threaded programming when we have to exchange the information safely between multiple threads. The Queue class in this module implements all the required locking semantics and it depends on the thread support’s availability in Python.
Implementation of queue.Queue
import queue q = queue.Queue(maxsize=3) print(q.qsize()) q.put(12) q.put(24) q.put(36) print("Full: ", q.full()) print("Size: ", q.qsize()) print(q.get()) print(q.get()) print(q.get()) print("Empty: ", q.empty())
collections.deque
Deque ( Doubly Ended Queue ) is present in the collections module in Python. In this data structure, insertion and deletion can be done on the both rear and front end. Operations of deque are quite faster than list in Python.
Implementation of collections.deque
import collections Deque = collections.deque([12, 24, 36]) Deque.append(0) print("The deque after appending at right is:", Deque) Deque.appendleft(100) print("The deque after appending at left is: ", Deque) Deque.pop() print("The deque after deleting from right is:", Deque); Deque.popleft() print("Queue:", Deque)
Sr. No. | Queue | Deque |
---|---|---|
1 | It implements a simple queue data structure. | It implements a doubly ended queue data structure. |
2 | It is present in the queue modules in Python. | It is present in the collections module in Python. |
3 | It has fewer features (operations and methods). | It has more features (operation and methods). |
4 | It follows FIFO (First in First out). | Insertion and deletion of an element can be done on the both rear and front end. |
5 | The operations of Queue are slow (long execution time). | The operations of deque are fast (very low execution time). |
6 | It is used in file IO, CPU scheduling and Disk scheduling. | It is mostly used for data structure operations. |
So, in this blog, we have tried to explain Difference Between queue.queue Vs collections.deque In Python. If you want to strengthen your basic data structures knowledge feel free to check Foundation Courses at Prepbytes.