Entfernen doppelter Wörterbücher aus einer Liste in Python
Anhand einer Liste von Wörterbüchern besteht das Ziel darin, alle Wörterbücher zu entfernen, die identische Schlüsselwörter haben. Wertepaare. Beispielsweise würde die Umwandlung der Liste [{'a': 123}, {'b': 123}, {'a': 123}] in [{'a': 123}, {'b': 123}] Folgendes tun Erreichen Sie dieses Ziel.
Um dies zu erreichen, können Sie eine einfache, aber leistungsstarke Technik anwenden:
[dict(t) for t in {tuple(d.items()) for d in l}]
Dieser Ansatz funktioniert auf drei verschiedene Arten Schritte:
Die Variablen im Codeausschnitt stellen Folgendes dar:
Bei Wartung Da die ursprüngliche Reihenfolge der Wörterbücher von entscheidender Bedeutung ist, können Sie den folgenden modifizierten Ansatz verwenden:
seen = set() new_l = [] for d in l: t = tuple(d.items()) if t not in seen: seen.add(t) new_l.append(d)
Dieser Code beinhaltet einen zusätzlichen Schritt der Verwaltung eines gesehenen Satzes, um zu verfolgen, welche Tupel (und damit Wörterbücher) bereits gefunden wurden . Wenn ein Tupel in der angezeigten Menge nicht gefunden wird, wird es der Menge hinzugefügt und das entsprechende Wörterbuch wird an die Liste new_l angehängt.
Es ist wichtig zu beachten, dass der direkte Vergleich von Wörterbüchern mithilfe von Gleichheit (==) führt möglicherweise nicht immer zum gewünschten Ergebnis, wenn die Wörterbücher auf unterschiedliche Weise geändert wurden. Wenn die Reihenfolge der Schlüssel-Wert-Paare wichtig ist, wird empfohlen, die Elemente des Wörterbuchs vor dem Erstellen des Tupels zu sortieren.
Das obige ist der detaillierte Inhalt vonWie kann ich doppelte Wörterbücher aus einer Python-Liste entfernen und dabei die Reihenfolge beibehalten oder ignorieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!