16 Stimmen

Warum überspringt Python Elemente, wenn ich eine Liste ändere, während ich über sie iteriere?

Ich entwickle gerade ein Programm in Python und habe gerade bemerkt, dass etwas mit der foreach-Schleife in der Sprache nicht stimmt, oder vielleicht die Listenstruktur. Ich werde einfach ein allgemeines Beispiel für mein Problem geben, um es zu vereinfachen, da ich das gleiche fehlerhafte Verhalten sowohl bei meinem Programm als auch bei meinem allgemeinen Beispiel erhalte:

x = [1,2,2,2,2]

for i in x:
    x.remove(i)

print x        

Nun, das Problem hier ist einfach, ich dachte, dass dieser Code sollte alle Elemente aus einer Liste zu entfernen. Nun, das Problem ist, dass ich nach der Ausführung immer 2 verbleibende Elemente in der Liste erhalte.

Was mache ich falsch? Vielen Dank für alle Hilfe im Voraus.

Edit: Ich möchte keine leere Liste erstellen, dies ist nur ein Beispiel...

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X