如何在Python中检查队列长度

run*_*ode 41 python queue python-2.7 data-structures python-3.x

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

我没看到他们在python中提供Queue.lenght ....

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

from collections import deque
queue = deque(["Eric", "John", "Michael"])
Run Code Online (Sandbox Code Playgroud)

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

我们可以初始化

queue= deque([])   #is this length 0 queue?
Run Code Online (Sandbox Code Playgroud)

K Z*_*K Z 50

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

具体来说,len(object)函数将调用object.__len__方法[ reference link ].在这种情况下的对象是deque,实现__len__方法(你可以看到它dir(deque)).


queue= deque([])   #is this length 0 queue?
Run Code Online (Sandbox Code Playgroud)

是的,空的是0 deque.

  • AttributeError:队列实例没有属性'__len__'我用的是qsize()而不是https://docs.python.org/2.7/library/queue.html (4认同)
  • @memo:阅读问题正文.`collections.deque`与`queue.Queue`不同.后者预计将用于多线程情况,其中可以在另一个线程中更改大小. (3认同)
  • 这个答案是错误的。根本没有这样的属性。 (2认同)
  • @SmallChess 你确定吗?它确实存在于`collections.deque`,这就是问题所在。根据文档:https://docs.python.org/3/library/collections.html#deque-objects 在本节的末尾...... *“除上述之外,双端队列支持迭代、酸洗、** len(d),**..."*(强调我的)。 (2认同)

Man*_*ani 29

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

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

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

对于deque from collections我们可以使用len()如说这里KZ.

  • 请注意,这是针对`Queue`类,它与`collections.deque`中的类不同,这是OP实际要求的. (3认同)