Heim >Backend-Entwicklung >Python-Tutorial >Wie kann man ein Wörterbuch mit Listenwerten umkehren?

Wie kann man ein Wörterbuch mit Listenwerten umkehren?

Susan Sarandon
Susan SarandonOriginal
2024-10-29 18:55:021061Durchsuche

How to Reverse a Dictionary with List Values?

Umkehren eines Wörterbuchs mit Listenwerten

Beim Umkehren eines Wörterbuchs wird ein neues Wörterbuch erstellt, in dem die Schlüssel und Werte des ursprünglichen Wörterbuchs ausgetauscht werden. Wenn das Originalwörterbuch Listenwerte enthält, stellt es eine Herausforderung dar, da Python keine Hash-Listen erstellen kann.

Verwendung von Tupeln für Tupelschlüssel

Ein Ansatz zur Behebung dieses Problems ist: Konvertieren Sie die Listenwerte in Tupel. Tupel sind unveränderlich und können gehasht werden, sodass sie als Schlüssel in einem Wörterbuch dienen können.

Beachten Sie den folgenden Code:

<code class="python">inverted_index = {}
for key, values in index.items():
    for value in values:
        tuple_key = (key, value)
        inverted_index.setdefault(tuple_key, []).append(key)</code>

Dieser Code erstellt einen neuen Schlüssel für jede eindeutige Kombination der Originalschlüssel und -wert. Das inverted_index-Wörterbuch wird dann mit den umgekehrten Schlüssel-Wert-Paaren gefüllt.

Verwenden von Sets für eindeutige Werte

Alternativ können Sie Sets verwenden, um doppelte Werte im invertierten Index zu verarbeiten Wörterbuch. Sets sind ungeordnete Sammlungen eindeutiger Elemente.

<code class="python">inverted_index = {}
for key, values in index.items():
    unique_values = set(values)
    for value in unique_values:
        inverted_index.setdefault(value, set()).add(key)</code>

Dieser Code erstellt einen Satz eindeutiger Werte für jeden Originalschlüssel. Das inverted_index-Wörterbuch wird dann mit den umgekehrten Schlüssel-Wert-Paaren gefüllt, wobei die Werte Sätze eindeutiger Originalschlüssel sind.

Das obige ist der detaillierte Inhalt vonWie kann man 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