Heim > Backend-Entwicklung > Python-Tutorial > Wie entferne ich Elemente sicher aus einer Liste, während ich in Python iteriere?

Wie entferne ich Elemente sicher aus einer Liste, während ich in Python iteriere?

Susan Sarandon
Freigeben: 2024-12-25 06:10:16
Original
1001 Leute haben es durchsucht

How to Safely Remove Items from a List While Iterating in Python?

Iteratives Entfernen von Elementen aus einer Liste

Problem

Iterieren durch eine Liste von Tupeln in Python, wobei versucht wird, Elemente basierend auf bestimmten Kriterien zu entfernen:

for tup in somelist:
    if determine(tup):
         # How to remove 'tup'?
Nach dem Login kopieren

Lösung

Ein Ansatz umfasst das Entfernen von Elementen während der Iteration Erstellen einer neuen Liste, die nur die gewünschten Elemente enthält:

somelist = [x for x in somelist if not determine(x)]
Nach dem Login kopieren

Alternativ mutiert das Zuweisen von somelist[:] zum Slice die vorhandene Liste:

somelist[:] = [x for x in somelist if not determine(x)]
Nach dem Login kopieren

Für die direkte Mutation das itertools-Modul stellt die Funktion filterfalse bereit:

  • Python 2:
from itertools import ifilterfalse
somelist[:] = ifilterfalse(determine, somelist)
Nach dem Login kopieren
  • Python 3:
from itertools import filterfalse
somelist[:] = filterfalse(determine, somelist)
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie entferne ich Elemente sicher aus einer Liste, während ich in Python iteriere?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage