Heim  >  Artikel  >  Backend-Entwicklung  >  Wie können Sie ein Wörterbuch mit Listenwerten umkehren?

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

Linda Hamilton
Linda HamiltonOriginal
2024-10-29 04:23:02770Durchsuche

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.

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:

<code class="python">inverse = {}
for k,v in index.items():
    for x in v:
        inverse.setdefault(x, []).append(k)</code>

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 um sie an eine vorhandene Liste anzuhä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.

Das obige ist der detaillierte Inhalt vonWie können Sie ein Wörterbuch mit Listenwerten umkehren?. 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