Entfernen mehrere Elemente aus einer Liste in Python

Jay Prakash Gupta 30 Januar 2023
  1. Entfernen mehrerer Elemente aus einer Liste mithilfe von if...else-Kontrollanweisungen
  2. Löschen mehrerer Elemente aus einer Liste mit der List Comprehensionsmethode in Python
  3. Entfernen mehrerer Elemente aus einer Liste mit List Slicing
  4. Entfernen Sie mehrere Elemente aus einer Liste mit der for-Schleife
Entfernen mehrere Elemente aus einer Liste in Python

Um mehrere Werte aus einer Python-Liste zu entfernen, können wir entweder die tatsächlichen Werte der Liste oder die Indizes der aus der Liste zu entfernenden Werte entfernen. Wir können if...else-Kontrollanweisungen, List Comprehensions, Listen-Slicing und for-Schleifen verwenden, um mehrere Elemente aus einer Liste in Python zu entfernen.

Entfernen mehrerer Elemente aus einer Liste mithilfe von if...else-Kontrollanweisungen

Wir können if...else-Kontrollanweisungen verwenden, um mehrere Werte aus einer Liste in Python zu entfernen, wenn die Werte eine bestimmte Bedingung erfüllen. Die Elemente können auch entfernt werden, wenn ihre Indizes eine bestimmte Bedingung erfüllen.

list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 20]
print("Original list : ", list1)


for ele in list1:
    if (ele % 2) != 0:
        list1.remove(ele)

print("List after deleting all values which are odd : ", list1)

Ausgabe:

Original list :  [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 20]
List after removing all the odd values :  [2, 4, 6, 8, 10, 20]

Hier haben wir eine Liste von ganzen Zahlen und müssen die Elemente mit dem ungeraden Wert aus der Liste entfernen. In diesem Fall durchlaufen wir alle Listenelemente l1 und entfernen ein Element mit der Methode remove() aus der Liste, wenn das Element einen ungeraden Wert hat.

Löschen mehrerer Elemente aus einer Liste mit der List Comprehensionsmethode in Python

In Python bezieht sich List Comprehensions auf den Prozess des Generierens einer neuen Liste aus einer vorhandenen Liste. Das List Comprehensions kann auch verwendet werden, um mehrere Elemente aus der Liste zu entfernen. Wir können eine neue Liste erstellen, indem wir die zu entfernenden Werte aus der ursprünglichen Liste entfernen.

l1 = [2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 80, 99]
l2 = [x for x in l1 if x % 2 == 0]

print("Original list : ", l1)
print("List after deleting all the odd values present in List : ", l2)

Ausgabe:

Original List :  [2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 80, 99]
List after deleting all the odd values present in List :  [2, 4, 6, 8, 10, 20, 80]

Hier erstellen wir die Liste l2 aus der Liste l1, die nur alle geraden Werte in l1 enthält. Mit anderen Worten, wir können sagen, dass wir eine neue Liste l2 aus der bestehenden Liste l1 erstellt haben, indem wir alle ungeraden Werte in der Liste l1 entfernt haben.

Entfernen mehrerer Elemente aus einer Liste mit List Slicing

Wir können auch mehrere Elemente aus einer Liste entfernen, indem wir die List-Slicing-Methode verwenden. Hier können wir den Bereich des Elements vom Anfang bis zum letzten Index des Elements, das wir aus der Liste entfernen möchten, in die Methode del setzen.

Anstatt einen einzelnen Index in der Methode del zu verwenden, verwenden wir einen Wertebereich vom Anfang bis zum letzten Index der Elemente, die wir aus der Liste entfernen möchten. Es entfernt die angrenzenden Elemente aus der Liste. Wir müssen beachten, dass der Werteindex in Python für Listen bei 0 beginnt.

l1 = [2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 80, 99]
print("Original list : ", l1)

del l1[2:5]

print("List after removing values at index 2, 3 and 4 : ", l1)

Ausgabe:

Original List :  [2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 80, 99]
List after removing values at index 2, 3 and 4 :  [1, 2, 6, 7, 8, 9, 10, 20, 80, 99]

Es entfernt die Werte an den Indizes 2, 3 und 4 aus der Liste l1 mit der Methode del.

Hier ist wichtig zu beachten, dass der erste Index 2 inklusive ist, dh Element an Index 2 in der Liste 3 wird entfernt, während der letzte Index ein exklusiver Wert ist, dh Element an Index 5 in der Liste 6 wird nicht entfernt.

Entfernen Sie mehrere Elemente aus einer Liste mit der for-Schleife

Wir können auch die for-Schleifen verwenden, um mehrere Elemente aus einer Liste zu entfernen.

Um diese Methode anzuwenden, müssen wir die Indizes der Elemente speichern, die wir aus der Liste löschen möchten. Das zufällige Entfernen des Elements führt jedoch zu einer Änderung der Werte der Indizes. Unsere kluge Strategie besteht darin, das Element zu löschen, dessen Position in der Liste größer ist. Der Wert des Elements an anderen Indizes ändert sich also nicht. Jetzt sortieren wir die Liste in absteigender Reihenfolge, um zuerst das Element mit einem höheren Index zu löschen. Der Code für diesen Ansatz ist unten gezeigt.

l1 = [2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 80, 99]
print("Original list : ", l1)

indexes_to_be_removed = [0, 2, 5]

for idx in sorted(indexes_to_be_removed, reverse=True):
    del l1[idx]

print("List after removing values at index 0, 2 and 5: ", l1)

Ausgabe:

Original List :  [2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 80, 99]
List after removing values at index 0, 2 and 5:  [3, 5, 6, 8, 9, 10, 20, 80, 99]

Es entfernt die Werte an den Indizes 0, 2 und 5 aus der Liste l1 mit der Methode del.

Verwandter Artikel - Python List