Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich Duplikate aus einer Liste entfernen und gleichzeitig die ursprüngliche Reihenfolge in Python beibehalten?

Wie kann ich Duplikate aus einer Liste entfernen und gleichzeitig die ursprüngliche Reihenfolge in Python beibehalten?

Barbara Streisand
Barbara StreisandOriginal
2024-12-23 07:01:07852Durchsuche

How Can I Remove Duplicates from a List While Maintaining Original Order in Python?

Umgang mit Duplikaten unter Beibehaltung der Listenreihenfolge

Beim Arbeiten mit Listen, die doppelte Elemente enthalten, ist es oft wünschenswert, diese zu entfernen und gleichzeitig die ursprüngliche Reihenfolge beizubehalten. Um dies zu erreichen, wird ein Set verwendet, da die ursprüngliche Reihenfolge außer Acht gelassen wird. Python bietet jedoch mehrere alternative Ansätze, die die Ordnung bewahren und gleichzeitig Duplikate entfernen.

Eingebaute Funktionen und Pythonic Idiome

  • Peter Be's Benchmark: https://www.peterbe.com/plog/uniqifiers-benchmark
  • Schnellste Lösung:
def f7(seq):
    seen = set()
    seen_add = seen.add
    return [x for x in seq if not (x in seen or seen_add(x))]

Diese Lösung weist seen.add zu seen_add zu Aus Effizienzgründen, da der wiederholte Aufruf von seen.add während Schleifeniterationen aufgrund der dynamischen Sprache von Python zu Leistungseinbußen führen kann Natur.

  • Bestelltes Set (Rezept): https://code.activestate.com/recipes/528878-ordered-set/
  • Eigenschaften geordneter Mengen:

    • O(1)-Einfügung, Lösch- und Mitgliederprüfvorgänge
  • Hinweis: Die Verwendung eines „oder“ nach seen.add im obigen Code ist lediglich ein Mechanismus, um eine Satzaktualisierung zu versuchen. kein wesentlicher Bestandteil des logischen Tests.

Durch die Verwendung dieser Methoden können Entwickler doppelte Elemente aus Listen entfernen, ohne die ursprüngliche Reihenfolge zu beeinträchtigen spezifische Datenmanipulationsszenarien.

Das obige ist der detaillierte Inhalt vonWie kann ich Duplikate aus einer Liste entfernen und gleichzeitig die ursprüngliche Reihenfolge in Python beibehalten?. 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