我对什么可以/不可以作为python dict的键有点疑惑。
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
所以元组是一个不可变的类型,但如果我在其中隐藏一个列表,那么它就不能成为一个键。难道我不能很容易地在一个模块中隐藏一个列表吗?
我有一些模糊的想法,即密钥必须是 "可哈希 "的,但我要承认我自己对技术细节的无知;我不知道这里到底发生了什么。 如果你试图用列表作为键,用哈希值作为,比如说,它们的内存位置,会出什么问题?