Ein Listenverständnis kann das in linearer Zeit tun - wenn Sie das einmal brauchen. Wenn Ihr Design zum abwechselnden Abrufen keys -> values
und values->keys mappings
benötigt, können Sie Ihre eigene Klasse entwerfen oder eine Bibliothek verwenden.
Meine eigene Python Extradict hat die BijectiveDict
Klasse, die genau das tut, versucht, so direkt wie möglich zu sein.
Beachten Sie jedoch, dass Sie dort Ihr gewünschtes Verhalten weiter spezifizieren müssen - in Ihrem Beispiel ist der Wert 2
mit 2 Schlüsseln verknüpft. Das Standardverhalten von BijectiveDict besteht darin, die früheren Zuweisungen einfach zu überschreiben: Sie rufen nur den letzten Schlüssel ab, der an einen bestimmten Wert gebunden ist.
Was haben Sie versucht? Dies ist relativ einfach ohne zusätzliche Bibliotheken und ein einfaches "Listenverständnis". – AChampion
Das Wörterbuch ist für Lookups in die andere Richtung gedacht. Wenn Sie Wert -> Schlüssel oft nachschlagen müssen, sollten Sie Ihre Datenstruktur überarbeiten. –