How to check queue length in Python

前端 未结 4 1493
梦毁少年i
梦毁少年i 2021-02-03 17:13

How to check Queue\'s length in python?

I dont see they provide Queue.lenght in python....

http://docs.python.org/tutorial/datastructures.html

fr         


        
相关标签:
4条回答
  • 2021-02-03 17:58

    Use queue.rear+1 to get the length of the queue

    0 讨论(0)
  • 2021-02-03 18:06

    it is simple just use .qsize() example:

    a=Queue()
    a.put("abcdef")
    print a.qsize() #prints 1 which is the size of queue
    

    The above snippet applies for Queue() class of python. Thanks @rayryeng for the update.

    for deque from collections we can use len() as stated here by K Z.

    0 讨论(0)
  • 2021-02-03 18:07

    Yes we can check the length of queue object created from collections.

    from collections import deque
    class Queue():
        def __init__(self,batchSize=32):
            #self.batchSie = batchSize
            self._queue = deque(maxlen=batchSize)
    
        def enqueue(self, items):
            ''' Appending the items to the queue'''
            self._queue.append(items)
    
        def dequeue(self):
            '''remoe the items from the top if the queue becomes full '''
            return self._queue.popleft()
    

    Creating an object of class

    q = Queue(batchSize=64)
    q.enqueue([1,2])
    q.enqueue([2,3])
    q.enqueue([1,4])
    q.enqueue([1,22])
    

    Now retrieving the length of the queue

    #check the len of queue
    print(len(q._queue)) 
    #you can print the content of the queue
    print(q._queue)
    #Can check the content of the queue
    print(q.dequeue())
    #Check the length of retrieved item 
    print(len(q.dequeue()))
    

    check the results in attached screen shot

    Hope this helps...

    0 讨论(0)
  • 2021-02-03 18:11

    len(queue) should give you the result, 3 in this case.

    Specifically, len(object) function will call object.__len__ method [reference link]. And the object in this case is deque, which implements __len__ method (you can see it by dir(deque)).


    queue= deque([])   #is this length 0 queue?
    

    Yes it will be 0 for empty deque.

    0 讨论(0)
提交回复
热议问题