2012-09-22 21 views
18

Pythonで待ち行列の長さをチェックする方法は?Pythonで待ち行列の長さをチェックする方法

私は、彼らがPythonでQueue.lenghtを提供ご覧ください....

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

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

このキューの長さをチェックするためにどのようにいけませんか?

と我々は

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

あなたがしようとしました '(キュー)' lenは?これは、通常、Pythonが要素数を処理する方法です。 – mjgpy3

答えて

26

len(queue)のように初期化することができますが、あなたにこの場合は3を結果を与える必要があります。

具体的には、len(object)関数は、object.__len__メソッド[reference link]を呼び出します。この場合のオブジェクトはdequeで、__len__メソッドを実装しています(dir(deque)で確認できます)。


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

はい、それは空のdequeのために0になります。

+2

AttributeError:キューインスタンスに属性 '__len__'がありません。代わりにqsize()を使用しました。https://docs.python.org/2.7/library/queue.html – memo

+0

@memo:質問本体を読んでください。 'collections.deque'は' queue.Queue'とは異なります。後者は、サイズが別のスレッドで変更される可能性があるマルチスレッドの場合に使用される予定です。 – jfs

-3

使用queue.rear+1はキュー

9

の長さを取得することで、単純なだけ.qsize()を使用し 例:

a=Queue() 
a.put("abcdef") 
print a.qsize() #prints 1 which is the size of queue 
関連する問題