web-dev-qa-db-fra.com

Comment vérifier la longueur de la file d'attente dans Python

Comment vérifier la longueur de la file d'attente en python?

Je ne vois pas qu'ils fournissent Queue.lenght en python ....

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

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

comment vérifier la longueur de cette file d'attente?

et pouvons-nous initialiser comme

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

len(queue) devrait vous donner le résultat, 3 dans ce cas.

Plus précisément, la fonction len(object) appellera la méthode object.__len__ [ lien de référence ]. Et l'objet dans ce cas est deque, qui implémente la méthode __len__ (Vous pouvez le voir par dir(deque)).


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

Oui, ce sera 0 pour deque vide.

48
K Z

c'est simple, il suffit d'utiliser l'exemple .qsize ():

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

L'extrait ci-dessus s'applique à la classe Queue() de python. Merci @ rayryeng pour la mise à jour.

pour deque from collections nous pouvons utiliser len() comme indiqué ici par K Z .

26
Mani

Oui, nous pouvons vérifier la longueur de l'objet de file d'attente créé à partir des 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()

Création d'un objet de classe

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

Récupération de la longueur de la file d'attente

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

vérifier les résultats dans la capture d'écran ci-jointe

enter image description here

J'espère que cela t'aides...

0
Vaibhav K