Alle Vorkommen eines Elements aus einer Liste in Python entfernen

  1. Verwenden Sie die Funktion filter(), um alle Instanzen eines Elements aus einer Liste in Python zu entfernen
  2. List Comprehensions verwenden, um alle Instanzen eines Elements aus einer Liste in Python zu entfernen
  3. 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.

Verwandter Artikel - Python List

  • Vergleichen Sie Listen in Python
  • Deklarieren Sie das 3D-Array in Python