Heim > Artikel > Backend-Entwicklung > Wie invertiere ich ein Wörterbuch mit Listenwerten?
Ihr Ziel ist es, ein Wörterbuch (Index) mit Listenwerten so umzukehren, dass im resultierenden Wörterbuch (Umkehrung) doppelte Werte zusammengeführt werden ein Schlüssel mit den ursprünglichen Schlüsseln als Werten.
Die bereitgestellte Funktion invert_dict schlägt fehl, wenn Listenwerte gefunden werden, da Listen nicht hashbar sind. Um dieses Problem zu lösen, betrachten Sie die folgende Lösung:
<code class="python">inverse = {} for k, v in index.items(): for x in v: inverse.setdefault(x, []).append(k)</code>
Diese Lösung durchläuft das ursprüngliche Wörterbuch (Index) und greift auf jeden Schlüssel (k) und Wert (v) zu. Für jeden Wert in v (das eine Liste ist) fügt es mithilfe der setdefault-Methode den zugehörigen Schlüssel zu einer Liste im inversen Wörterbuch hinzu. Die Methode erstellt einen neuen Eintrag für jeden eindeutigen Wert in v und hängt den Schlüssel an die zugehörige Liste an.
Als Ergebnis enthält das inverse Wörterbuch die gewünschte invertierte Struktur, wobei jeder Wert eine Liste der Originalschlüssel ist wo dieser Wert erscheint.
Das obige ist der detaillierte Inhalt vonWie invertiere ich ein Wörterbuch mit Listenwerten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!