Múltiples claves por valor

¿Es posible asignar múltiples claves por valor en un diccionario de Python? Una posible solución es asignar valor a cada clave:

dict = {'k1':'v1', 'k2':'v1', 'k3':'v1', 'k4':'v2'}

pero esto no es eficiente en memoria ya que mi archivo de datos es> 2 GB. De lo contrario podrías hacer un diccionario de claves de diccionario:

key_dic = {'k1':'k1', 'k2':'k1', 'k3':'k1', 'k4':'k4'}
dict = {'k1':'v1', 'k4':'v2'}
main_key = key_dict['k2']
value = dict[main_key]

Esto también requiere mucho tiempo y esfuerzo porque tengo que revisar el diccionario / archivo completo dos veces. ¿Hay alguna otra solución Python fácil e incorporada?

Nota: los valores de mi diccionario no son simples cadenas (como en la pregunta 'v1', 'v2') son objetos bastante complejos (contienen diferentes diccionarios / listas, etc. y no es posible escabullirlos)

Nota: la pregunta parece similar a¿Cómo puedo usar tanto una clave como un índice para el mismo valor de diccionario? Pero no estoy buscando un diccionario ordenado / indexado y estoy buscando otras soluciones eficientes (si las hay) que no sean las dos mencionadas en esta pregunta.

Respuestas a la pregunta(7)

Su respuesta a la pregunta