So entfernen Sie Duplikate aus einer Liste in Python

โšก Intelligente Zusammenfassung

Entfernen von Duplikaten aus einem Python Listen kรถnnen mit verschiedenen integrierten Methoden erstellt werden, darunter set(), dict.fromkeys(), Schleifen, List Comprehensions und Bibliotheksmethoden von NumPy und Pandas, wobei jeweils ein Gleichgewicht zwischen der Beibehaltung der Reihenfolge und der Geschwindigkeit angestrebt wird.

  • ๐Ÿ”˜ Set-Methode: set() gibt sofort unterschiedliche Elemente zurรผck, erhรคlt aber nicht die ursprรผngliche Reihenfolge der Liste.
  • โ˜‘๏ธ Ordnung gewahrt: dict.fromkeys() und OrderedDict entfernen Duplikate, wรคhrend keeping die zuerst gesehene Einfรผgereihenfolge.
  • โœ… Manuelle Kontrolle: Eine For-Schleife oder eine List Comprehension mit einer Mitgliedschaftsprรผfung sorgt fรผr Ordnung und Lesbarkeit.
  • ๐Ÿงช Bibliotheksmethoden: Die Methoden `unique()` von NumPy und `unique()` von Pandas entfernen Duplikate und geben รผber die Methode `tolist()` eine Liste als Ergebnis zurรผck.
  • ๏ธ Hashbarkeitsgrenze: Set- und dict-Schlรผssel erfordern hashbare Elemente, daher benรถtigen Listen oder Dictionaries einen schleifenbasierten Ansatz.
  • ๐Ÿค– KI-Workflows: Machine-Learning-Pipelines entfernen Duplikate aus Trainingsdaten mithilfe der Pandas-Funktion drop_duplicates(), um Verzerrungen und Datenlecks zu vermeiden.

Duplikate aus einer Liste entfernen in Python

Python Duplikate aus einer Liste entfernen

Eine Liste ist ein Container, der verschiedene Python Objekte, die ganze Zahlen, Wรถrter, Werte usw. sein kรถnnen. Es entspricht einem Array in anderen Programmiersprachen.

Hier werden wir verschiedene Mรถglichkeiten durchgehen, wie wir Duplikate aus einer gegebenen Liste entfernen kรถnnen. Python.

Methode 1) Entfernen Sie Duplikate mit โ€žSetโ€œ aus der Liste

Um Duplikate aus einer Liste zu entfernen, kann man die eingebaute Funktion set() verwenden. Die Besonderheit der set()-Methode ist, dass sie eindeutige Elemente zurรผckgibt.

Wir haben die Liste [1,1,2,3,2,2,4,5,6,2,1]. Diese Liste enthรคlt viele Duplikate, die wir entfernen mรผssen, um nur die eindeutigen Elemente zu erhalten. Die Liste wird der eingebauten Funktion `set()` รผbergeben. Later Die endgรผltige Liste wird mithilfe der integrierten Funktion list() angezeigt.

Das Ergebnis sind eindeutige Elemente, wobei alle Duplikate entfernt wurden.

Beispiel

my_list = [1,1,2,3,2,2,4,5,6,2,1]
my_final_list = set(my_list)
print(list(my_final_list))

Ausgang:

[1, 2, 3, 4, 5, 6]

Methode 2) Verwenden der temporรคren Liste

Um Duplikate aus einer Liste zu entfernen, kann man eine leere temporรคre Liste verwenden. Dazu muss man zunรคchst die Liste mit den Duplikaten durchlaufen und die eindeutigen Elemente der temporรคren Liste hinzufรผgen. Later die temporรคre Liste wird der Hauptliste zugeordnet.

Beispiel

Hier ist ein funktionierendes Beispiel mit einer temporรคren Liste.

my_list = [1, 2, 3, 1, 2, 4, 5, 4 ,6, 2]
print("List Before ", my_list)
temp_list = []

for i in my_list:
    if i not in temp_list:
        temp_list.append(i)

my_list = temp_list

print("List After removing duplicates ", my_list)

Ausgang:

List Before  [1, 2, 3, 1, 2, 4, 5, 4, 6, 2]
List After removing duplicates  [1, 2, 3, 4, 5, 6]

Methode 3) Verwenden von Dict

Duplikate lassen sich aus der gegebenen Liste entfernen, indem man `OrderedDict` aus dem Paket `collections` importiert. Dieses ist ab Python 2.7 verfรผgbar. `OrderedDict` sorgt dafรผr, dass die eindeutigen Elemente in der Reihenfolge zurรผckgegeben werden, in der der Schlรผssel vorkommt.

Wir verwenden eine Liste und nutzen die Methode fromkeys() aus OrderedDict, um die eindeutigen Elemente aus der Liste zu erhalten.

Um die Methode OrderedDict.fromkeys() nutzen zu kรถnnen, mรผssen Sie OrderedDict aus collections importieren, wie unten gezeigt:

from collections import OrderedDict

Hier ist ein Beispiel zum Entfernen von Duplikaten mithilfe der Methode OrderedDict.fromkeys().

Beispiel

from collections import OrderedDict

my_list = ['a','x','a','y','a','b','b','c']

my_final_list = OrderedDict.fromkeys(my_list)

print(list(my_final_list))

Ausgang:

['a', 'x', 'y', 'b', 'c']

Von Python Ab Version 3.5 kรถnnen wir die regulรคre Methode `dict.fromkeys()` verwenden, um die eindeutigen Elemente einer Liste zu erhalten. Die Methode `dict.fromkeys()` gibt eindeutige Schlรผssel zurรผck und hilft so, doppelte Werte zu entfernen.

Ein Beispiel, das die Funktionsweise von dict.fromkeys() auf einer Liste zur Ermittlung der eindeutigen Elemente veranschaulicht, ist folgendes:

Beispiel

my_list = ['a','x','a','y','a','b','b','c']
my_final_list = dict.fromkeys(my_list)
print(list(my_final_list))

Ausgang:

['a', 'x', 'y', 'b', 'c']

Methode 4) For-Schleife verwenden

Die Verwendung von for-Schleife, werden wir die Liste der Elemente durchgehen, um Duplikate zu entfernen.

Zuerst wird das Array leer initialisiert, also `myFinallist = []`. Innerhalb der for-Schleife wird geprรผft, ob die Elemente der Liste bereits im Array `myFinallist` vorhanden sind. Falls nicht, wird das Element mithilfe der `append()`-Methode hinzugefรผgt.

Wenn also ein doppeltes Element gefunden wird, ist es bereits im Array โ€žmyFinallistโ€œ vorhanden und wird nicht eingefรผgt. Betrachten wir nun das folgende Beispiel:

Beispiel

my_list = [1,2,2,3,1,4,5,1,2,6]
myFinallist = []
for i in my_list:
    if i not in myFinallist:
myFinallist.append(i)
print(list(myFinallist))

Ausgang:

[1, 2, 3, 4, 5, 6]

Methode 5) Verwendung des Listenverstรคndnisses

Listenverstรคndnisse sind Python Funktionen, die zum Erstellen neuer Sequenzen (wie Listen, Wรถrterbรผcher usw.) unter Verwendung bereits erstellter Sequenzen verwendet werden. Dies hilft Ihnen, lรคngere Schleifen zu reduzieren und Ihren Code leichter lesbar und wartbar zu machen.

Nutzen wir das Listenverstรคndnis, um Duplikate aus der angegebenen Liste zu entfernen.

Beispiel

my_list = [1,2,2,3,1,4,5,1,2,6]
my_finallist = []
[my_finallist.append(n) for n in my_list if n not in my_finallist]
print(my_finallist)

Ausgang:

[1, 2, 3, 4, 5, 6]

Methode 6) Verwendung der NumPy-Methode unique()

Die Methode unique() aus dem NumPy-Modul kann uns dabei helfen, Duplikate aus der gegebenen Liste zu entfernen.

Um mit NumPy zu arbeiten, importieren Sie zuerst das NumPy-Modul:

Schritt 1) NumPy-Modul importieren

import numpy as np

Schritt 2) Verwenden Sie Ihre Liste mit Duplikaten innerhalb der Methode `unique()`. Die Ausgabe wird mithilfe der Methode `tolist()` wieder in eine Liste umgewandelt.

myFinalList = np.unique(my_list).tolist()

Schritt 3) Zum Schluss die Liste ausgeben:

print(myFinalList)

Der endgรผltige Code mit Ausgabe lautet wie folgt:

import numpy as np
my_list = [1,2,2,3,1,4,5,1,2,6]
myFinalList = np.unique(my_list).tolist()
print(myFinalList)

Ausgang:

[1, 2, 3, 4, 5, 6]

Methode 7) Verwendung von Pandas-Methoden

Das Pandas-Modul verfรผgt รผber eine unique()-Methode, die uns die eindeutigen Elemente aus der angegebenen Liste liefert.

So arbeiten Sie mit dem Pandas-Modul:

Schritt 1) Pandas-Modul importieren

import pandas as pd

Schritt 2) Verwenden Sie Ihre Liste mit Duplikaten innerhalb der unique()-Methode:

myFinalList = pd.unique(my_list).tolist()

Schritt 3) Liste ausdrucken:

print(myFinalList)

Der endgรผltige Code mit Ausgabe lautet wie folgt:

import pandas as pd

my_list = [1,2,2,3,1,4,5,1,2,6]
myFinalList = pd.unique(my_list).tolist()
print(myFinalList)

Ausgang:

[1, 2, 3, 4, 5, 6]

Methode 8) Verwendung von enumerate() und Listenverstรคndnis

Hier verwenden wir eine Kombination aus List Comprehension und `enumerate()`, um doppelte Elemente zu entfernen. `enumerate()` gibt ein Objekt mit einem Zรคhler fรผr jedes Element in der Liste zurรผck, z. B. (0,1), (1,2) usw. Der erste Wert ist der Index, der zweite das jeweilige Listenelement.

Es wird geprรผft, ob jedes Element in der Liste vorhanden ist; falls ja, wird es aus der Liste entfernt.

Beispiel

my_list = [1,2,2,3,1,4,5,1,2,6]
my_finallist = [i for j, i in enumerate(my_list) if i not in my_list[:j]]
print(list(my_finallist))

Ausgang:

[1, 2, 3, 4, 5, 6]

Hรคufig gestellte Fragen

Nein. Ein Set ist eine ungeordnete Sammlung, daher kann `set()` Elemente in einer anderen Reihenfolge zurรผckgeben. Um Duplikate zu entfernen und gleichzeitig die Reihenfolge beizubehalten, verwenden Sie `dict.fromkeys()` oder eine Schleife, die nur die noch nicht berรผcksichtigten Elemente hinzufรผgt.

Bei groรŸen Listen ist `set()` am schnellsten, wenn die Reihenfolge keine Rolle spielt, da die Mitgliedschaftsprรผfungen in konstanter Zeit (O(1)) durchgefรผhrt werden. Wenn die Reihenfolge wichtig ist, ist `list(dict.fromkeys(my_list))` fast genauso schnell und speichert die Reihenfolge der zuerst gesehenen Elemente in einer Zeile.

Die Methoden `set()` und `dict.fromkeys()` benรถtigen hashbare Elemente und funktionieren daher nicht mit Listen oder Wรถrterbรผchern. Man kann die Liste durchlaufen und die noch nicht berรผcksichtigten Elemente anhรคngen oder jedes Element in ein Tupel oder einen JSON-String als temporรคren Schlรผssel umwandeln.

Verwende list(dict.fromkeys(my_list)). Da Python Dictionaries der Version 3.7 behalten die Einfรผgereihenfolge bei, sodass die Schlรผssel in der Reihenfolge ihres ersten Auftretens erhalten bleiben. In frรผheren Versionen verwenden Sie `collections.OrderedDict.fromkeys()`, um dasselbe Ergebnis zu erzielen.

Nein. Methoden wie `set()`, `dict.fromkeys()`, List Comprehensions und `unique()` von NumPy oder Pandas erstellen eine neue Liste und lassen die ursprรผngliche Liste unverรคndert. Weisen Sie das Ergebnis derselben Variable erneut zu, wenn Sie die ursprรผngliche Liste รผberschreiben mรถchten.

Verwenden Sie `numpy.unique()` oder `pandas.unique()`, wenn die Daten bereits in Arrays oder einer Series vorliegen oder wรคhrend der Datenanalyse. Beachten Sie, dass `numpy.unique()` die Werte zusรคtzlich sortiert, wรคhrend `pandas.unique()` die Reihenfolge beibehรคlt. Verwenden Sie `tolist()` fรผr eine einfache Liste.

Machine-Learning-Pipelines entfernen doppelte Zeilen vor dem Training, um zu verhindern, dass wiederholte Stichproben das Modell verfรคlschen oder Daten zwischen Trainings- und Testdatensรคtzen รผbertragen. Die Pandas-Funktion `drop_duplicates()` ist ein gรคngiges Werkzeug zur Bereinigung tabellarischer Datensรคtze.

Ja. GitHub Copilot und agentenbasierte KI-Assistenten generieren aus einem Kommentar set()-, dict.fromkeys()- oder Pandas-Deduplizierungscode, schlagen die Option zur Erhaltung der Reihenfolge vor und refaktorisieren Schleifen. Sie sollten jedoch weiterhin Grenzfรคlle wie nicht hashbare Elemente รผberprรผfen.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: