web-dev-qa-db-ja.com

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?
39
runcode

len(queue)から結果が得られます(この場合は3)。

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


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

はい、空のdequeの場合は0になります。

48
K Z

.qsize()の例を使用するだけです:

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

上記のスニペットは、PythonのQueue()クラスに適用されます。 @ rayryeng 更新ありがとう。

_deque from collections_の場合、前述のようにlen()を使用できます here by K Z

26
Mani

はい、コレクションから作成されたキューオブジェクトの長さを確認できます。

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

添付のスクリーンショットで結果を確認してください

enter image description here

お役に立てれば...

0
Vaibhav K