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
Susan SarandonOriginal
2024-12-25 06:10:161080Durchsuche

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'?

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)]

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

somelist[:] = [x for x in somelist if not determine(x)]

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

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

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!

Stellungnahme:
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