Alle Vorkommen eines Elements aus einer Liste in Python entfernen
-
Verwenden Sie die Funktion
filter()
, um alle Instanzen eines Elements aus einer Liste in Python zu entfernen - List Comprehensions verwenden, um alle Instanzen eines Elements aus einer Liste in Python zu entfernen
-
Verwenden Sie die Funktion
remove()
, um alle Instanzen eines Elements aus einer Liste in Python zu entfernen
Eine Liste in Python erlaubt das mehrfache Vorkommen desselben Elements. Auch wenn der Wert eines Elements derselbe sein kann wie der der anderen, hat jedes Element einen anderen Index. Über diese Indexnummern können Sie einfach auf die gewünschten Elemente zugreifen.
Es kann aber Situationen geben, in denen Sie nicht mehrere Instanzen desselben Elements haben wollen; dann werden Sie sicherlich alle Vorkommen dieses Elements aus einer Liste entfernen wollen. In Python gibt es verschiedene Möglichkeiten, wie Sie das erreichen können.
Verwenden Sie die Funktion filter()
, um alle Instanzen eines Elements aus einer Liste in Python zu entfernen
In Python wird das Filtern von Elementen mit Hilfe der Funktion filter()
einfacher. Die Funktion filter()
nimmt zwei Argumente entgegen, das erste Argument ist eine Funktion, das zweite Argument können Mengen, Listen, Tupel usw. sein.
Beispiel 1: filter()
Funktion mit __ne__
myList = [2, 1, 3, 5, 1, 1, 1, 0]
myList = list(filter((1).__ne__, myList))
print(myList)
Ausgabe:
[2, 3, 5, 0]
In diesem Beispiel haben Sie eine Liste myList
, aus der Sie das Vorkommen von 1
entfernen wollen. Die Funktion filter()
nimmt eine weitere Funktion, __ne__
, die ein bool zurückgibt, entweder True
oder False
, je nachdem, ob der Wert 1
in der Liste myList
vorhanden ist oder nicht. Wenn der Wert 1
in der Liste vorhanden ist, dann wird er einfach verworfen. Dann wird das, was von der Funktion filter()
zurückgegeben wird, mit der Funktion list()
in eine Liste umgewandelt.
Beispiel 2: filter()
Funktion mit lambda
Funktion
myList = [2, 1, 3, 5, 1, 1, 1, 0]
valueToBeRemoved = 1
result = filter(lambda val: val != valueToBeRemoved, myList)
print(list(result))
Ausgabe:
[2, 3, 5, 0]
Statt der Funktion __ne__
übergeben wir eine lambda
-Funktion an die filter()
-Funktion.
Von der Liste myList
wird jedes Element einzeln genommen und in der Variablen val
gespeichert. Wenn die Elemente, die in val
und valueToBeRemoved
vorhanden sind, nicht gleich sind, werden nur die Elemente, die in val
vorhanden sind, der neuen Variablen result
hinzugefügt. Sie sollten result
mit der Funktion list()
in eine Liste umwandeln.
List Comprehensions verwenden, um alle Instanzen eines Elements aus einer Liste in Python zu entfernen
Ein List Comprehensions ist eine kurze Art, Code zu schreiben. List Comprehension ist schneller als die normalen Funktionen und Schleifen.
Beispielcode:
myList = [1, 2, 3, 4, 2, 2, 3]
valueToBeRemoved = 2
myList = [value for value in myList if value != valueToBeRemoved]
print(myList)
Ausgabe:
[1, 3, 4, 3]
Sie haben eine Liste myList
, aus der Sie das Vorkommen des Elements 2
entfernen wollen. Der Hauptcode zum Entfernen aller Instanzen eines Elements befindet sich innerhalb der eckigen Klammern []
. Hier wird zuerst die for
-Schleife durchlaufen, die dann einen Wert aus der Liste myList
entnimmt und in der Variablen value
speichert. Danach, wenn der Wert in der Variable value
und die Variable valueToBeRemoved
nicht übereinstimmen, wird nur der Wert der Variable value
zurückgegeben und in der Liste myList
gespeichert. Dieser Vorgang wird so lange fortgesetzt, bis die Liste leer ist. Am Ende haben Sie eine Liste, die die gewünschte Ausgabe enthält, die Sie haben wollen.
Verwenden Sie die Funktion remove()
, um alle Instanzen eines Elements aus einer Liste in Python zu entfernen
Die Funktion remove()
entfernt nur das erste Vorkommen des Elements. Wenn Sie alle Vorkommen eines Elements mit der Funktion remove()
entfernen möchten, können Sie eine Schleife verwenden, entweder eine for
-Schleife oder eine while
-Schleife.
myList = [2, 1, 3, 5, 1, 1, 1, 0]
valueToBeRemoved = 1
try:
while True:
myList.remove(valueToBeRemoved)
except ValueError:
pass
print(myList)
Ausgabe:
[2, 3, 5, 0]
Im obigen Code haben Sie eine Liste myList
erstellt, und dann haben Sie eine Variable valueToBeRemoved
, die das Element enthält, dessen Vorkommen Sie aus der Liste entfernen wollen, in diesem Fall 1
. Beim Durchlaufen der Liste wird dieses Element, wenn es sich innerhalb der Liste befindet, mit der Funktion remove()
aus der Liste entfernt.
Sahil is a full-stack developer who loves to build software. He likes to share his knowledge by writing technical articles and helping clients by working with them as freelance software engineer and technical writer on Upwork.
LinkedIn