Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich doppelte Wörterbücher effizient aus einer Python-Liste entfernen?
Entfernen doppelter Wörterbücher aus einer Liste in Python
Wenn Sie mit Listen von Wörterbüchern in Python arbeiten, müssen Sie möglicherweise Duplikate entfernen. Unabhängig davon, ob die Duplikate identische Schlüssel-Wert-Paare oder eine genaue Schlüssel-Wert-Reihenfolge aufweisen, ist ein effizienter Ansatz erforderlich.
Hashing zum Entfernen von Duplikaten verwenden
Der folgende Einzeiler Entfernt effektiv doppelte Wörterbücher basierend auf ihren Schlüssel-Wert-Paaren:
[dict(t) for t in {tuple(d.items()) for d in l}]
Dieser Ansatz beinhaltet die Konvertierung jedes Wörterbuchs in ein Tupel davon Schlüssel-Wert-Paare. Da Tupel gehasht werden können, können Sie die festgelegte Datenstruktur nutzen, um Duplikate zu eliminieren. Der resultierende Satz enthält eindeutige Tupel, die dann wieder in Wörterbücher umgewandelt werden.
Bewahrung der Reihenfolge
Wenn die Reihenfolge der Wörterbücher wichtig ist, reicht der obige Ansatz nicht aus. Stattdessen kann eine explizitere Methode verwendet werden:
l = [{'a': 123, 'b': 1234}, {'a': 3222, 'b': 1234}, {'a': 123, 'b': 1234}] seen = set() new_l = [] for d in l: t = tuple(d.items()) if t not in seen: seen.add(t) new_l.append(d) print(new_l)
Dieser Code sammelt nicht doppelte Wörterbücher in einer neuen Liste und behält dabei ihre ursprüngliche Reihenfolge bei. Es verwendet einen Satz, um die gefundenen Tupel zu verfolgen und die Eindeutigkeit sicherzustellen.
Hinweis:
Es ist wichtig zu beachten, dass in einigen Fällen zwei Wörterbücher mit identischen Schlüsseln und Werten verwendet werden führt möglicherweise nicht zum gleichen Tupel. Dies tritt auf, wenn die Wörterbücher unterschiedliche Sequenzen zum Hinzufügen/Entfernen von Schlüsseln haben. Wenn dies in Ihrem Szenario ein Problem darstellt, sollten Sie erwägen, die Elemente jedes Wörterbuchs zu sortieren, bevor Sie das Tupel erstellen.
Das obige ist der detaillierte Inhalt vonWie kann ich doppelte Wörterbücher effizient aus einer Python-Liste entfernen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!