eine Eins-zu-Eins-Wörterbuch Given (= Bijektion) erzeugt à laGibt es eine bessere Möglichkeit, ein zweiseitiges Wörterbuch zu speichern, als seine inverse separate zu speichern?
for key, value in someGenerator:
myDict[key] = value
eine inverse Lookup-Wörterbuch kann durch Zugabe von
invDict[value] = key
zum for
Schleife trivially erstellt werden. Aber ist das ein pythonischer Weg? Soll ich stattdessen eine class Bijection(dict)
schreiben, die dieses invertierte Wörterbuch zusätzlich verwaltet und eine zweite Lookup-Funktion bereitstellt? Oder existiert eine solche Struktur (oder eine ähnliche) bereits?
Was ist mit diesem [bidict] ( –
@ JonClements klingt perfekt, danke!) Ich würde das als Antwort akzeptieren. Die Verwendung von Slices für die umgekehrte Suche ist eine großartige Idee. –
"Bidict" umklammert nur zwei separate Python-Wörterbücher mit Vorwärts- und Rückwärts-Mappings, so dass es nicht effizienter ist, als das selbe selbst zu tun. In der Tat, wenn Sie viele Schlüssel-Lookups machen, wird es aufgrund des Funktionsaufruf-Overheads viel langsamer sein. – Aya