2012-09-22 11 views
18

Jak sprawdzić kolejkę w pythonie?Jak sprawdzić długość kolejki w Pythonie

Nie widzę zapewniają Queue.lenght w Pythonie ....

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

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

jak sprawdzić długość tej kolejki?

i możemy zainicjować jak

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

Próbowałaś 'len (kolejka)'? Zwykle w ten sposób Python obsługuje liczbę elementów. – mjgpy3

Odpowiedz

26

len(queue) powinno dać wynik, 3 w tym przypadku.

W szczególności funkcja len(object) wywoła metodę object.__len__ [reference link]. A w tym przypadku obiektem jest deque, który implementuje metodę __len__ (można ją zobaczyć za pomocą dir(deque)).


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

Tak to będzie 0 dla pustego deque.

+2

AttributeError: Instancja kolejki nie ma atrybutu "__len__" Użyłem qsize() zamiast https://docs.python.org/2.7/library/queue.html – memo

+0

@memo: przeczytaj treść pytania. 'collections.deque' różni się od' queue.Queue'. Oczekuje się, że ta ostatnia będzie używana w przypadku wielowątkowości, w której rozmiar może zostać zmieniony w innym wątku. – jfs

-3

Zastosowanie queue.rear+1 aby uzyskać długość kolejki

9

to jest proste wystarczy użyć .qsize() przykład:

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