„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie entferne ich doppelte Wörterbücher effizient aus einer Python-Liste?

Wie entferne ich doppelte Wörterbücher effizient aus einer Python-Liste?

Veröffentlicht am 07.11.2024
Durchsuche:815

How to Efficiently Remove Duplicate Dictionaries from a Python List?

Einzigartige Wörterbücher in Python-Listen

Listen von Wörterbüchern sind in Python-Anwendungen üblich. Allerdings kann die Verwaltung doppelter Wörterbücher eine Herausforderung sein. In diesem Artikel wird erläutert, wie Sie Duplikate effizient entfernen und eine Liste eindeutiger Wörterbücher erhalten.

Betrachten Sie eine Liste von Wörterbüchern:

L = [
    {'id': 1, 'name': 'john', 'age': 34},
    {'id': 1, 'name': 'john', 'age': 34},
    {'id': 2, 'name': 'hanna', 'age': 30}
]

Annäherung an das Problem

Um eine Liste von Wörterbüchern zu deduplizieren, besteht ein einfacher Ansatz darin, die Liste zu durchlaufen und jedes Wörterbuch mit den anderen zu vergleichen. Allerdings kann dieser Prozess bei großen Listen rechenintensiv sein.

Verwenden eines temporären Wörterbuchs

Eine effizientere Lösung nutzt ein temporäres Wörterbuch, um die Deduplizierung durchzuführen. Der Schlüssel des Wörterbuchs wird auf das ID-Feld jedes Wörterbuchs und der Wert auf das Wörterbuch selbst festgelegt. Dieser Vorgang filtert Duplikate effektiv heraus, da jede eindeutige ID nur einem Wörterbucheintrag entspricht.

Eindeutige Wörterbücher abrufen

Sobald das temporäre Wörterbuch gefüllt ist, werden die Werte (die stellen die eindeutigen Wörterbücher dar) können mit der Methode „values()“ abgerufen werden.

Python Implementierung

Python 2.7:

{v['id']:v for v in L}.values()

Python 3:

list({v['id']:v for v in L}.values())

Python 2.5/2.6:

dict((v['id'],v) for v in L).values()

Diese prägnanten Lösungen führen zu einer Liste eindeutiger Wörterbücher:

[
    {'id': 1, 'name': 'john', 'age': 34},
    {'id': 2, 'name': 'hanna', 'age': 30}
]

Dieser Ansatz entfernt Duplikate effizient, indem ein temporäres Wörterbuch genutzt wird, um eindeutige Wörterbuchwerte zu identifizieren und zu extrahieren.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3