¿Hay una mejor manera de almacenar un diccionario de dos días que almacenar su inverso por separado? [duplicar]

Esta pregunta ya tiene una respuesta aquí:

¿Cómo implementar una tabla hash bidireccional eficiente? [duplicar] 6 respuestas

Dado un diccionario uno a uno (= bijection) generado a la

for key, value in someGenerator:
     myDict[key] = value

un diccionario de búsqueda inversa se puede crear de forma trivial añadiendo

    invDict[value] = key

alfor lazo. ¿Pero es esta una manera pitónica? ¿Debería escribir unaclass Bijection(dict) ¿Qué gestiona este diccionario invertido además y proporciona una segunda función de búsqueda? ¿O tal estructura (o similar) ya existe?

Respuestas a la pregunta(2)

Su respuesta a la pregunta