Python while-Schleife popleft() - FEHLER: Leere deque

Ich bin auf der Suche nach einer eleganten Lösung für diese Schleife. Meine deques werden dynamisch erstellt und können in der Länge variieren. Im Beispiel unten ist die Liste nur zwei Elemente, die lang und konnte bis zu 3 Elemente lang. In meiner Anwendung, die Listen können bis zu 30 Einträge lang. Ich möchte daher vermeiden, schreiben viele if-Anweisungen und den stop-code ausführen, sobald das deque leer ist.

from collections import deque

my_list = [ 1,2 ]
my_deque = deque ( my_list )

while my_deque:
    alpha = my_deque.popleft()
    beta = my_deque.popleft()
    gamma = my_deque.popleft()

Den obigen code ausführt, alle drei Befehle und auf die gamma-Befehl gibt ein "IndexError: pop aus eine leere deque." Ich verstehe, warum dieser Fehler passiert ist, wollen aber wissen, ob es ist ein trick, den ich vermisse, um zu bewerten, ob eine Liste/deque leer ist oder nicht in der Mitte einer while-Schleife (oder eine andere kreative Art und Weise, um eine Schleife durch eine lange Liste).

Danke für die Hilfe.

InformationsquelleAutor ccdpowell | 2013-03-01
Schreibe einen Kommentar