62

如何在python中检查双端队列的长度?

我没有看到他们在 Python 中提供 deque.length ...

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

from collections import deque
queue = deque(["Eric", "John", "Michael"])

如何检查这个双端队列的长度?

我们可以像这样初始化吗

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

4 回答 4

68

len(queue)应该给你结果,在这种情况下是 3。

具体来说,len(object)函数会调用object.__len__方法[参考链接]。而本例中的对象是deque,它实现__len__了方法(您可以通过 看到它dir(deque))。


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

是的,空的将为 0 deque

于 2012-09-22T23:24:48.113 回答
57

这很简单,只需使用 .qsize() 示例:

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

上面的代码片段适用于Queue()python 类。感谢@rayryeng的更新。

因为我们deque from collections可以按照KZlen()的说明使用。

于 2016-09-27T06:24:11.980 回答
1

是的,我们可以检查从集合创建的队列对象的长度。

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()

创建类对象

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

现在检索队列的长度

#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()))

检查附加屏幕截图中的结果

在此处输入图像描述

希望这可以帮助...

于 2019-02-22T12:37:31.963 回答
-7

用于queue.rear+1获取队列长度

于 2015-12-06T09:28:08.240 回答