Heim >Backend-Entwicklung >Python-Tutorial >Wie entferne ich Duplikate effizient aus einer Python-Liste und behalte gleichzeitig die Reihenfolge bei?

Wie entferne ich Duplikate effizient aus einer Python-Liste und behalte gleichzeitig die Reihenfolge bei?

DDD
DDDOriginal
2024-12-20 12:42:19538Durchsuche

How to Efficiently Remove Duplicates from a Python List While Maintaining Order?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn