adressieren die Elemententfernung in Listen während für Schleifen iterationen
in Python, versuchen, ein Element aus einer Liste zu entfernen, während sie gleichzeitig iterieren, indem sie einen für Schleifen mit Laufzeitfehlern durchführen können. Dies liegt an der dynamischen Natur der Listen und dem Potenzial, dass sich die Größe der Liste während des Iterationsprozesses ändern kann. für Artikel in a: Druck (Artikel) A.Remove (item)
Wenn dieser Code ausgeführt wird, führt er zu einem Fehler, nachdem das erste Element verarbeitet wurde, da die Entfernung des Elements aus der Liste während der Iteration die Größe der Liste verändert und den Zehner der nachfolgenden Elemente ungültig wird. Iterieren können mehrere alternative Ansätze berücksichtigt werden:
1. Pop -Methode
a = ["a", "b", "c", "d", "e"] for item in a: print(item) a.remove(item)
während a: print (a.pop ())
2. Kopieren Sie nicht Matching-Elemente
Wenn das gewünschte Ergebnis darin besteht, Elemente basierend auf einer bestimmten Bedingung zu entfernen, kann eine neue Liste erstellt werden, indem Elemente kopieren, die nicht mit der Bedingung übereinstimmen:
result = [] für Artikel in a: Wenn der Zustand falsch ist: Ergebnis.Append (Artikel) a = result
3. Filter/List Verständnis
while a: print(a.pop())
# Filter a = filter (lambda item: ..., a) # Listenverständnis A = [Element für Element in a if ...]
schlussfolgerung
result = [] for item in a: if condition is False: result.append(item) a = result
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3