Elemente aus einer Liste während der Iteration entfernen
Beim Durchlaufen einer Liste in Python ist es wichtig zu wissen, wie Elemente entfernt werden, die bestimmte Anforderungen erfüllen Kriterien. Der Versuch, eine Liste während der Iteration zu ändern, kann jedoch zu Problemen führen.
Das Dilemma
Betrachten Sie den folgenden Codeblock:
for tup in somelist: if determine(tup): # How do I remove 'tup' here?
Wie kann Sie entfernen tup aus der Liste und behalten dabei das bei Iterator?
Lösungen
Es gibt mehrere Lösungen für dieses Problem:
1. Listenverständnis
somelist = [x for x in somelist if not determine(x)]
Diese Methode erstellt eine neue Liste, die nur die Elemente enthält, die nicht entfernt werden müssen.
2. Slice-Zuweisung
somelist[:] = [x for x in somelist if not determine(x)]
Diese Zuweisung ändert die vorhandene Liste so, dass sie nur die gewünschten Elemente enthält.
3. Itertools
from itertools import filterfalse somelist[:] = filterfalse(determine, somelist)
Dieser Ansatz verwendet Pythons Filterfalse-Funktion, um unerwünschte Elemente herauszufiltern.
Zusätzliche Hinweise
Das obige ist der detaillierte Inhalt vonWie entferne ich beim Iterieren in Python sicher Elemente aus einer Liste?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!