Heim >Backend-Entwicklung >Python-Tutorial >Wie entferne ich Duplikate effizient aus einer Python-Liste und behalte gleichzeitig die Reihenfolge bei?
Duplikate in Listen entfernen
In Python ist es eine häufige Aufgabe, in einer Liste nach Duplikaten zu suchen und eine neue Liste ohne diese zurückzugeben. Es gibt mehrere Ansätze, um dies zu erreichen.
Verwenden von Sets
Sets sind ungeordnete Sammlungen unterschiedlicher Objekte. Sie bieten eine effiziente Möglichkeit, Duplikate zu entfernen. Um einen Satz aus einer Liste zu erstellen, übergeben Sie ihn einfach an die Funktion set(). Um es wieder in eine Liste umzuwandeln, verwenden Sie die Funktion list(). Diese Methode bewahrt jedoch nicht die ursprüngliche Reihenfolge der Elemente.
t = [1, 2, 3, 1, 2, 3, 5, 6, 7, 8] list(set(t)) # [1, 2, 3, 5, 6, 7, 8]
Aufrechterhaltung der Reihenfolge
Wenn die Beibehaltung der ursprünglichen Reihenfolge von entscheidender Bedeutung ist, werden die Sammlungen.OrderedDict Modul genutzt werden kann. OrderedDict behält die Einfügereihenfolge der Elemente bei. Konvertieren Sie die Liste in ein OrderedDict und dann zurück in eine Liste, um die Reihenfolge beizubehalten.
from collections import OrderedDict list(OrderedDict.fromkeys(t)) # [1, 2, 3, 5, 6, 7, 8]
Wörterbücher in Python 3.7 verwenden
In Python 3.7 und höher reguläre Wörterbücher Behalten Sie auch die Einfügungsreihenfolge bei. Daher können Sie den folgenden Ansatz verwenden:
list(dict.fromkeys(t)) # [1, 2, 3, 5, 6, 7, 8]
Überlegungen
Beachten Sie, dass alle diese Methoden erfordern, dass die Elemente in der Liste hashbar (d. h. unveränderlich) sind. . Wenn die Elemente nicht hashbar sind (z. B. Listen), ist ein langsamerer Ansatz mit Vergleichen in verschachtelten Schleifen erforderlich.
Das obige ist der detaillierte Inhalt vonWie entferne ich Duplikate effizient aus einer Python-Liste und behalte gleichzeitig die Reihenfolge bei?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!