Python Duplikate Elemente aus Liste entfernen

Document 对象参考手册Python3-Beispiele

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

list_1 = [1, 2, 1, 4, 6]

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

# Verwende eine Hilfsmenge, um Duplikate zu entfernen und dabei die Reihenfolge beizubehalten
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

# Verwende dict.fromkeys(), um bei Beibehaltung der Reihenfolge zu deduplizieren
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

# Verwende Listenkomprehension zur Deduplizierung
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_1 = [1, 2, 1, 4, 6]
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).

Document 对象参考手册Python3-Beispiele

Andere Erweiterungen