„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 können Sie ein Wörterbuch mit Listenwerten umkehren?

Wie können Sie ein Wörterbuch mit Listenwerten umkehren?

Veröffentlicht am 07.11.2024
Durchsuche:347

How Can You Invert a Dictionary with List Values?

Wörterbücher mit Listenwerten umkehren: Eine Lösung

In diesem Artikel untersuchen wir die Herausforderung der Umkehrung eines Wörterbuchs mit Listenwerten. Bei einem Indexwörterbuch, in dem Schlüssel Dateinamen und Werte Listen von Wörtern sind, die in diesen Dateien vorkommen, möchten wir ein invertiertes Wörterbuch erstellen, in dem Wörter Schlüssel und Werte Listen von Dateinamen sind.

Die bereitgestellte Inversionsfunktion invert_dict, ist nicht auf Wörterbücher mit Listenwerten als Schlüssel anwendbar, da es mit einem „TypeError: unhashable type: ‚list‘“ fehlschlägt. Diese Einschränkung ergibt sich aus der Tatsache, dass Schlüssel in Wörterbüchern hashbar sein müssen und Listen nicht hashbar sind.

Um diese Hürde zu überwinden, können wir einen benutzerdefinierten Ansatz verwenden, der das ursprüngliche Wörterbuch durchläuft und mit setdefault ein neues Wörterbuch erstellt . Konkret durchlaufen wir die Wertelisten jedes Schlüssels im ursprünglichen Wörterbuch und fügen die entsprechenden Schlüssel als Werte für diese Wörter im neuen invertierten Wörterbuch hinzu.

Hier ist eine Beispielimplementierung dieses Ansatzes:

inverse = {}
for k,v in index.items():
    for x in v:
        inverse.setdefault(x, []).append(k)

Diese Lösung verarbeitet Listenwerte im ursprünglichen Wörterbuch, indem sie die setdefault-Methode verwendet, um eine neue Liste zu erstellen, wenn der Schlüssel nicht im invertierten Wörterbuch vorhanden ist. oder an eine vorhandene Liste anhängen, wenn der Schlüssel bereits vorhanden ist.

Als Ergebnis erhalten wir ein invertiertes Wörterbuch, in dem Wörter Schlüssel und Werte Listen von Dateinamen sind.

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