Python Duplikate Elemente aus Liste entfernen
In diesem Kapitel lernen wir, wie man doppelte Elemente aus einer Liste entfernt.
Wichtige Wissenspunkte:
-
Python Set: Eine Menge ist eine ungeordnete Folge eindeutiger Elemente.
-
Python List: Eine Liste ist eine endliche Folge von Datenelementen, das heißt eine Sammlung von Datenelementen, die in einer bestimmten linearen Reihenfolge angeordnet sind. Die grundlegenden Operationen, die auf dieser Datenstruktur ausgeführt werden, umfassen Suchen, Einfügen und Löschen von Elementen.
Beispiel
print(list(set(list_1)))
Nach Ausführung des obigen Codes ist die Ausgabe:
[1, 2, 4, 6]
Im obigen Beispiel konvertieren wir die Liste zunächst in eine Menge und dann wieder zurück in eine Liste. Eine Menge kann keine doppelten Elemente enthalten, daher entfernt set() die doppelten Elemente.
Wenn Sie die Reihenfolge der Elemente in der ursprünglichen Liste beibehalten müssen, können Sie eine Hilfsmenge verwenden, um die bereits gesehenen Elemente zu verfolgen und dann eine neue Liste zu erstellen.
Beispiel
def remove_duplicates(lst):
seen = set()
unique_list = []
for item in lst:
if item not in seen:
seen.add(item)
unique_list.append(item)
return unique_list
# Beispiel
original_list = [1, 2, 2, 3, 4, 4, 5]
unique_list = remove_duplicates(original_list)
print(unique_list) # Ausgabe: [1, 2, 3, 4, 5]
Verwenden von dict.fromkeys()
Die Methode dict.fromkeys() kann auch zur Deduplizierung verwendet werden, wobei die Reihenfolge erhalten bleibt, da Wörterbücher in Python 3.7 und höher die Einfügereihenfolge beibehalten.
Beispiel
def remove_duplicates(lst):
return list(dict.fromkeys(lst))
# Beispiel
original_list = [1, 2, 2, 3, 4, 4, 5]
unique_list = remove_duplicates(original_list)
print(unique_list) # Ausgabe: [1, 2, 3, 4, 5]
Nach Ausführung des obigen Codes ist die Ausgabe:
[1, 2, 3, 4, 5]
Verwenden von Listenkomprehension
Listenkomprehension in Kombination mit bedingten Prüfungen kann ebenfalls eine Deduplizierung erreichen.
Beispiel
def remove_duplicates(lst):
unique_list = []
[unique_list.append(item) for item in lst if item not in unique_list]
return unique_list
# Beispiel
original_list = [1, 2, 2, 3, 4, 4, 5]
unique_list = remove_duplicates(original_list)
print(unique_list) # Ausgabe: [1, 2, 3, 4, 5]
Doppelte Elemente aus zwei Listen entfernen
Im folgenden Beispiel werden Elemente entfernt, die in beiden Listen vorhanden sind.
Beispiel
list_2 = [7, 8, 2, 1]
print(list(set(list_1) ^ set(list_2)))
Zuerst verwenden Sie set(), um die beiden Listen in zwei Mengen umzuwandeln, um doppelte Elemente aus den Listen zu entfernen.
Verwenden Sie dann den^Operator, um die symmetrische Differenz der beiden Listen zu erhalten.
Nach Ausführung des obigen Codes ist die Ausgabe:
[4, 6, 7, 8]
Zuerst konvertieren Sie die beiden Listen in zwei Mengen, um Duplikate aus jeder Liste zu entfernen.
Dann,^ergibt die symmetrische Differenz der beiden Listen (ohne die überlappenden Elemente der beiden Mengen).
Andere Erweiterungen
Python3-Beispiele