相关疑难解决方法(0)

为什么我不能在python中使用列表作为dict键?

关于什么可以/不能用作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
Run Code Online (Sandbox Code Playgroud)

所以一个元组是一个不可变的类型,但是如果我在其中隐藏一个列表,那么它就不能成为一个键......难道我不能轻易地隐藏模块中的列表吗?

我有一个模糊的想法,关键是必须"可以",但我只是承认自己对技术细节的无知; 我不知道这里到底发生了什么.如果您尝试使用列表作为键,将哈希作为其内存位置,会出现什么问题?

python dictionary tuples list hashable

82
推荐指数
6
解决办法
9万
查看次数

使用冷冻套装作为Dict钥匙是否安全?

它显然有效,但有两种相同的元素碰巧在Dict中添加两个条目的情况?我想我之前得到了这个条件并将我的代码更改frozenset(...)tuple(sorted(frozenset(...))).知道Dict和冻结集实现如何确认是否需要的人可以吗?

python hashmap python-2.7 frozenset

9
推荐指数
3
解决办法
1万
查看次数

标签 统计

python ×2

dictionary ×1

frozenset ×1

hashable ×1

hashmap ×1

list ×1

python-2.7 ×1

tuples ×1