Я немного смущен тем, что может/не может использоваться в качестве ключа для питона-диктата.
dicked = {}
dicked[None] = 'foo' # None ok
dicked[(1,3)] = 'baz' # tuple ok
import sys
dicked[sys] = 'bar' # wow, even a module is ok !
dicked[(1,[3])] = 'qux' # oops, not allowed
Итак, кортеж является неизменным типом, но если я скрою его внутри, то он не может быть ключом. Не мог бы я просто скрыть список внутри модуля?
У меня была какая-то неопределенная идея, что ключ должен быть "хэшируемым", но я просто буду признавать свое невежество в отношении технических деталей; Я не знаю, что здесь происходит. Что пойдет не так, если вы попытаетесь использовать списки в качестве ключей, а хэш как, скажем, их ячейку памяти?