Возможно, по неправильным причинам, я сталкивался с этой проблемой несколько раз; где я хочу сослаться на полный dict
как ключ к чему-то. Мне не нужно, чтобы он был изменчивым, но я хочу сохранить и легко получить доступ к dict
членам.
Самый простой способ сделать неизменным и быстро используемым dict
в качестве значения ключа - сделать его JSON (или сериализовать в вашей любимой альтернативе).
Например:
>>> import json
>>> d = {'hey':1, 'there':2}
>>> d_key = json.dumps(d)
>>> d_key
'{"there": 2, "hey": 1}'
>>> d2 = {d_key: 'crazytown'}
>>> d2
{'{"there": 2, "hey": 1}': 'crazytown'}
Легко манипулировать, поскольку это просто строка. И он может быть десериализован в объект, если вы хотите сослаться на его члены.