Close Menu

    Subscribe to Updates

    Get the latest creative news from FooBar about art, design and business.

    What's Hot

    This week in AI updates: GPT-5.1, Cloudsmith MCP Server, and extra (November 14, 2025)

    November 14, 2025

    OpenAI’s newest replace delivers GPT-5.1 fashions and capabilities to offer customers extra management over ChatGPT’s persona

    November 13, 2025

    The 2025 Stack Overflow Developer Survey with Jody Bailey and Erin Yepis

    November 13, 2025
    Facebook X (Twitter) Instagram
    • About Us
    • Contact Us
    • Disclaimer
    • Privacy Policy
    • Terms and Conditions
    TC Technology NewsTC Technology News
    • Home
    • Big Data
    • Drone
    • Software Development
    • Software Engineering
    • Technology
    TC Technology NewsTC Technology News
    Home»Big Data»Queue in Python – Analytics Vidhya
    Big Data

    Queue in Python – Analytics Vidhya

    adminBy adminAugust 7, 2024Updated:August 7, 2024No Comments9 Mins Read
    Facebook Twitter Pinterest LinkedIn Tumblr Email
    Queue in Python – Analytics Vidhya
    Share
    Facebook Twitter LinkedIn Pinterest Email
    Queue in Python – Analytics Vidhya


    Introduction

    Think about you’re standing in entrance of a grocery store ready on your flip to purchase live performance tickets of your favorite artist. All go to the road formation and transfer from the road on the entrance of it. Pc scientists name this orderliness a queue, which follows the First In, First Out (FIFO) coverage. Programmers discover queues as helpful as different Python information constructions and use them to handle duties, course of asynchronous information, and carry out many different capabilities. On this article we are going to focuses on utilizing queues in Python, the overall overview of the queues, and the significance of queues.

    Studying Outcomes

    • Perceive what a queue is and its significance in programming.
    • Be taught other ways to implement queues in Python.
    • ExploExplore varied operations you possibly can carry out on queues.
    • Uncover sensible functions of queues.
    • Acquire insights into superior queue sorts and their use circumstances.

    What’s a Queue?

    A queue is a linear information construction that follows the First In First Out (FIFO) precept. It operates by inserting information on the rear finish and deleting information from the entrance finish. This course of ensures that the queue removes the primary inserted aspect first, adhering to the FIFO precept.

    Queue in Python

    Operations on Queues

    Listed below are the operations which might be sometimes related to a queue.

    • Enqueue: This operation provides an merchandise to the top of the queue. If the queue is full, it leads to an overflow situation. The time complexity for this operation is (O(1)).
    • Dequeue: This operation removes an merchandise from the entrance of the queue. Objects comply with the FIFO precept and are eliminated in the identical order they had been added. If the queue is empty, it leads to an underflow situation. The time complexity for this operation is (O(1)).
    • Peek or Entrance: This operation retrieves the merchandise on the entrance of the queue with out eradicating it. The time complexity for this operation is (O(1)).
    • Rear or Again: This operation retrieves the merchandise on the finish of the queue. The time complexity for this operation is (O(1)).
    • IsEmpty: Checking if the queue is empty. Time complexity: O(1) – Fixed time operation.
    • IsFull: Checking if the queue is full (if applied with a hard and fast measurement). Time complexity: O(1) – Fixed time operation.
    • Dimension: Returns the variety of parts within the queue. Time complexity: O(1) – Fixed time operation in most implementations.

    Implementing Queues in Python

    There are a number of methods to implement queues in Python:

    Utilizing Lists

    Python lists can be utilized to implement a queue. Nevertheless, utilizing lists for queues just isn’t environment friendly for giant datasets as a result of eradicating parts from the entrance of an inventory is an O(n) operation.

    class ListQueue:
        def __init__(self):
            self.queue = []
    
        def enqueue(self, merchandise):
            self.queue.append(merchandise)
            print(f"Enqueued: merchandise")
    
        def dequeue(self):
            if self.is_empty():
                elevate IndexError("Dequeue from an empty queue")
            merchandise = self.queue.pop(0)
            print(f"Dequeued: merchandise")
            return merchandise
    
        def peek(self):
            if self.is_empty():
                elevate IndexError("Peek from an empty queue")
            print(f"Peek: self.queue[0]")
            return self.queue[0]
    
        def is_empty(self):
            return len(self.queue) == 0
    
        def measurement(self):
            print(f"Dimension: len(self.queue)")
            return len(self.queue)
    
        def clear(self):
            self.queue = []
            print("Queue cleared")
    
    # Instance utilization
    lq = ListQueue()
    lq.enqueue(1)
    lq.enqueue(2)
    lq.peek()
    lq.dequeue()
    lq.measurement()
    lq.clear()

    Output:

    Enqueued: 1
    Enqueued: 2
    Peek: 1
    Dequeued: 1
    Dimension: 1
    Queue cleared

    Utilizing collections.deque

    The collections.deque class from the collections module gives a extra environment friendly option to implement a queue because it permits O(1) operations for appending and popping parts from each ends.

    from collections import deque
    
    class DequeQueue:
        def __init__(self):
            self.queue = deque()
    
        def enqueue(self, merchandise):
            self.queue.append(merchandise)
            print(f"Enqueued: merchandise")
    
        def dequeue(self):
            if self.is_empty():
                elevate IndexError("Dequeue from an empty queue")
            merchandise = self.queue.popleft()
            print(f"Dequeued: merchandise")
            return merchandise
    
        def peek(self):
            if self.is_empty():
                elevate IndexError("Peek from an empty queue")
            print(f"Peek: self.queue[0]")
            return self.queue[0]
    
        def is_empty(self):
            return len(self.queue) == 0
    
        def measurement(self):
            print(f"Dimension: len(self.queue)")
            return len(self.queue)
    
        def clear(self):
            self.queue.clear()
            print("Queue cleared")
    
    # Instance utilization
    dq = DequeQueue()
    dq.enqueue(1)
    dq.enqueue(2)
    dq.peek()
    dq.dequeue()
    dq.measurement()
    dq.clear()

    Output:

    Enqueued: 1
    Enqueued: 2
    Peek: 1
    Dequeued: 1
    Dimension: 1
    Queue cleared

    Utilizing queue.Queue

    The queue.Queue class from the queue module is designed particularly for multi-threaded programming. It gives thread-safe queues and varied synchronization primitives.

    from queue import Queue, Empty
    
    class ThreadSafeQueue:
        def __init__(self, maxsize=0):
            self.queue = Queue(maxsize=maxsize)
    
        def enqueue(self, merchandise):
            self.queue.put(merchandise)
            print(f"Enqueued: merchandise")
    
        def dequeue(self):
            attempt:
                merchandise = self.queue.get(timeout=1)  # Await as much as 1 second for an merchandise
                print(f"Dequeued: merchandise")
                return merchandise
            besides Empty:
                elevate IndexError("Dequeue from an empty queue")
    
        def peek(self):
            with self.queue.mutex:
                if self.queue.empty():
                    elevate IndexError("Peek from an empty queue")
                print(f"Peek: self.queue.queue[0]")
                return self.queue.queue[0]
    
        def is_empty(self):
            return self.queue.empty()
    
        def measurement(self):
            print(f"Dimension: self.queue.qsize()")
            return self.queue.qsize()
    
        def clear(self):
            with self.queue.mutex:
                self.queue.queue.clear()
                print("Queue cleared")
    
    # Instance utilization
    tsq = ThreadSafeQueue()
    tsq.enqueue(1)
    tsq.enqueue(2)
    tsq.peek()
    tsq.dequeue()
    tsq.measurement()
    tsq.clear()

    Output:

    Enqueued: 1
    Enqueued: 2
    Peek: 1
    Dequeued: 1
    Dimension: 1
    Queue cleared

    Functions of Queues

    Queues are broadly utilized in varied functions, together with:

    • Activity Scheduling: Pc scientists suggest the queue as one of many primary summary information sorts, which many functions use to order parts in keeping with a selected criterion.
    • Breadth-First Search: One other traversal algorithm is the BFS algorithm which employs a queue information construction to traverse nodes in a graph degree by degree.
    • Dealing with Asynchronous Information: It is because internet servers deal with information move by utilizing queues, processing requests within the order they obtain them.
    • Buffering: Queues are simply as IO Buffers that relate information Interchange transactions as a option to management information move between information producers and information customers.
    • Print Spooling: Scheduling of print jobs in printers who accomplish print requests on a first-come, first-served foundation.
    • Order Processing: Prospects orders’ administration within the context of each bodily and on-line shops.
    • Useful resource Allocation: Handle shared assets like printers or CPU time (e.g., allocate assets primarily based on queue place).
    • Batch Processing: Deal with jobs in batches, processing them sequentially (e.g., picture processing, information evaluation).
    • Networking: Handle community visitors, routing information packets (e.g., routers use queues to buffer incoming packets).
    • Working Methods: Handle interrupts, deal with system calls, and implement course of scheduling.
    • Simulations: Mannequin real-world programs with ready traces (e.g., financial institution queues, visitors lights).

    Superior Queue Sorts

    Allow us to now look into the superior queue sorts beneath:

    Precedence Queue

    A precedence queue assigns a precedence to every aspect. Parts with increased precedence are dequeued earlier than these with decrease precedence.

    from queue import PriorityQueue
    
    pq = PriorityQueue()
    
    # Enqueue
    pq.put((1, 'process 1'))  # (precedence, worth)
    pq.put((3, 'process 3'))
    pq.put((2, 'process 2'))
    
    # Dequeue
    print(pq.get())  # Output: (1, 'process 1')
    print(pq.get())  # Output: (2, 'process 2')

    Double-Ended Queue (Deque)

    A deque permits parts to be added or faraway from each ends, making it extra versatile.

    from collections import deque
    
    deque = deque()
    
    # Enqueue
    deque.append(1)        # Add to rear
    deque.appendleft(2)    # Add to entrance
    
    # Dequeue
    print(deque.pop())     # Take away from rear, Output: 1
    print(deque.popleft()) # Take away from entrance, Output: 2

    Round Queue

    Effectively makes use of array area by wrapping round to the start when the top is reached.

    class CircularQueue:
        def __init__(self, capability):
            self.queue = [None] * capability
            self.entrance = self.rear = -1
            self.capability = capability
    
        def is_empty(self):
            return self.entrance == -1
    
        def is_full(self):
            return (self.rear + 1) % self.capability == self.entrance
    
        def enqueue(self, merchandise):
            if self.is_full():
                print("Queue Overflow")
                return
            if self.entrance == -1:
                self.entrance = 0
            self.rear = (self.rear + 1) % self.capability
            self.queue[self.rear] = merchandise
    
        def dequeue(self):
            if self.is_empty():
                print("Queue Underflow")
                return
            merchandise = self.queue[self.front]
            if self.entrance == self.rear:
                self.entrance = self.rear = -1
            else:
                self.entrance = (self.entrance + 1) % self.capability
            return merchandise
    
        def peek(self):
            if self.is_empty():
                print("Queue is empty")
                return
            return self.queue[self.front]
    
        def measurement(self):
            if self.is_empty():
                return 0
            return (self.rear + 1 - self.entrance) % self.capability
    
    # Instance utilization
    cq = CircularQueue(5)
    cq.enqueue(1)
    cq.enqueue(2)
    cq.enqueue(3)
    print(cq.dequeue())  # Output: 1
    print(cq.peek())  # Output: 2

    Blocking Queue

    It synchronizes entry between threads. It blocks when the queue is full or empty till area is out there.

    import queue
    
    class BlockingQueue:
        def __init__(self, maxsize):
            self.queue = queue.Queue(maxsize)
    
        def put(self, merchandise):
            self.queue.put(merchandise)
    
        def get(self):
            return self.queue.get()
    
        def empty(self):
            return self.queue.empty()
    
        def full(self):
            return self.queue.full()
    
    # Instance utilization
    bq = BlockingQueue(5)
    import threading
    
    def producer():
        for i in vary(10):
            bq.put(i)
    
    def shopper():
        whereas True:
            merchandise = bq.get()
            print(merchandise)
            bq.task_done()
    
    producer_thread = threading.Thread(goal=producer)
    consumer_thread = threading.Thread(goal=shopper)
    producer_thread.begin()
    consumer_thread.begin()

    Benefits of Queues

    • Order Upkeep: Queues preserve the order of parts, which is important for process scheduling and processing sequences.
    • Concurrency Dealing with: Queues effectively handle concurrent information processing, particularly in multi-threaded functions.
    • Simplicity and Flexibility: You possibly can implement queues simply and adapt them for varied functions, from easy process administration to complicated information processing pipelines.

    Conclusion

    Pc scientists suggest the queue as one of many primary summary information sorts, which many functions use to order parts in keeping with a selected criterion. Queues are of various sorts in python however beneath are the most effective and generally used strategies to implement them. Studying the correct utilization of queues in addition to mastering their utility can play an intensive position in sprucing one’s programming expertise and make it doable to handle quite a few points.

    Often Requested Questions

    Q1. What’s the distinction between a queue and a stack?

    A. A queue follows the FIFO precept, whereas a stack follows the LIFO (Final In, First Out) precept.

    Q2. When ought to I take advantage of a queue?

    A. Use a queue when it’s essential course of parts within the order you added them, equivalent to in process scheduling or BFS.

    Q3. Is collections.deque thread-safe?

    A. No, collections.deque just isn’t thread-safe. Use queue.Queue for thread-safe operations.

    This autumn. Can a queue be used for sorting?

    A. A precedence queue can be utilized for sorting parts primarily based on precedence.

    Q5. What are some real-world examples of queues?

    A. Examples embrace customer support traces, print job administration, and request dealing with in internet servers.



    Supply hyperlink

    Post Views: 139
    Share. Facebook Twitter Pinterest LinkedIn Tumblr Email
    admin
    • Website

    Related Posts

    Do not Miss this Anthropic’s Immediate Engineering Course in 2024

    August 23, 2024

    Healthcare Know-how Traits in 2024

    August 23, 2024

    Lure your foes with Valorant’s subsequent defensive agent: Vyse

    August 23, 2024

    Sony Group and Startale unveil Soneium blockchain to speed up Web3 innovation

    August 23, 2024
    Add A Comment

    Leave A Reply Cancel Reply

    Editors Picks

    This week in AI updates: GPT-5.1, Cloudsmith MCP Server, and extra (November 14, 2025)

    November 14, 2025

    OpenAI’s newest replace delivers GPT-5.1 fashions and capabilities to offer customers extra management over ChatGPT’s persona

    November 13, 2025

    The 2025 Stack Overflow Developer Survey with Jody Bailey and Erin Yepis

    November 13, 2025

    OWASP Prime 10 up to date after 4 years, with lots of the identical issues nonetheless impacting functions

    November 12, 2025
    Load More
    TC Technology News
    Facebook X (Twitter) Instagram Pinterest Vimeo YouTube
    • About Us
    • Contact Us
    • Disclaimer
    • Privacy Policy
    • Terms and Conditions
    © 2025ALL RIGHTS RESERVED Tebcoconsulting.

    Type above and press Enter to search. Press Esc to cancel.