Um doppelte Elemente aus einer Liste in Python zu entfernen, können Sie verschiedene Methoden verwenden. Ein allgemeiner und unkomplizierter Ansatz besteht darin, die Liste in einen Satz und dann in eine Liste umzuwandeln. So können Sie es tun:
<code class="python">original_list = [1, 2, 2, 3, 4, 4, 5] deduplicated_list = list(set(original_list)) print(deduplicated_list) # Output: [1, 2, 3, 4, 5]</code>
Diese Methode bewahrt jedoch nicht die ursprüngliche Reihenfolge der Elemente. Wenn die Auftragserhaltung kein Problem darstellt, ist dies eine einfache und effektive Methode.
Die effizienteste Methode zur Beseitigung von Duplikaten aus einer Liste in Python in Bezug auf die Zeitkomplexität verwendet einen Satz. Die Sätze in Python haben eine durchschnittliche Zeitkomplexität von O (1) für das Hinzufügen und Überprüfen der Mitgliedschaft, wodurch sie für Deduplikationsaufgaben hocheffizient sind. Die oben verwendete Methode unter Verwendung von set()
und list()
ist wie folgt:
<code class="python">original_list = [1, 2, 2, 3, 4, 4, 5] deduplicated_list = list(set(original_list))</code>
Dieser Ansatz ist effizient, bewahrt jedoch die Reihenfolge der Elemente nicht. Wenn die Aufbewahrung der Reihenfolge wichtig ist, muss ein anderer Ansatz verwendet werden, der möglicherweise weniger effizient, aber immer noch einigermaßen schnell ist.
Ja, Sie können die Reihenfolge der Elemente bewahren und gleichzeitig Duplikate aus einer Liste in Python entfernen. Eine Möglichkeit, dies zu erreichen, besteht darin, ein Listenverständnis mit einem Set zu verwenden, um gesehene Elemente zu verfolgen:
<code class="python">original_list = [1, 2, 2, 3, 4, 4, 5] seen = set() deduplicated_list = [x for x in original_list if not (x in seen or seen.add(x))] print(deduplicated_list) # Output: [1, 2, 3, 4, 5]</code>
Diese Methode durchgeht die Liste einmal und prüft und fügt Elemente in den seen
Satz hinzu. Wenn ein Element noch nicht gesehen wurde, ist es in der neuen Liste enthalten, um sicherzustellen, dass die ursprüngliche Bestellung beibehalten wird.
Es gibt mehrere Ansätze, um eine Liste in Python zu deduplizieren, die jeweils eigene Kompromisse in Bezug auf Effizienz, Auftragserhaltung und Lesbarkeit haben. Hier sind einige gemeinsame Methoden:
Verwenden eines Satzes (keine Auftragserhaltung):
<code class="python">original_list = [1, 2, 2, 3, 4, 4, 5] deduplicated_list = list(set(original_list))</code>
Kompromisse: Hocheffizient mit O (n) Zeitkomplexität, behält jedoch nicht die ursprüngliche Reihenfolge der Elemente auf.
Listen Sie das Verständnis mit einem Satz auf (Auftrag erhalten):
<code class="python">original_list = [1, 2, 2, 3, 4, 4, 5] seen = set() deduplicated_list = [x for x in original_list if not (x in seen or seen.add(x))]</code>
Kompromisse: Bewahrt die Reihenfolge der Elemente und ist mit O (n) -Time-Komplexität immer noch relativ effizient, kann jedoch weniger lesbar und etwas weniger effizient sein als die eingestellte Methode.
Verwenden dict.fromkeys()
(in Python 3.7 aufbewahrt):
<code class="python">original_list = [1, 2, 2, 3, 4, 4, 5] deduplicated_list = list(dict.fromkeys(original_list))</code>
Kompromisse: Erhalt der Ordnung in Python 3.7 und später aufgrund der Einführung von insertionorierten Wörterbüchern. Es ist effizient und prägnant, aber die Auftragserhaltung ist nur in neueren Python -Versionen garantiert.
Verwenden einer Schleife (aufbewahrt bestellen):
<code class="python">original_list = [1, 2, 2, 3, 4, 4, 5] deduplicated_list = [] for item in original_list: if item not in deduplicated_list: deduplicated_list.append(item)</code>
Kompromisse: Erhalt der Reihenfolge und ist unkompliziert zu verstehen, kann jedoch aufgrund wiederholter Mitgliedschaftstests weniger effizient sein als andere Methoden, insbesondere für große Listen.
Jede Methode hat ihre Anwendungsfälle, je nachdem, ob Sie Effizienz, Auftragserhaltung oder Code -Lesbarkeit priorisieren.
Das obige ist der detaillierte Inhalt vonWie entfernen Sie doppelte Elemente aus einer Liste in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!