python - 如何在Python中使用字典作为字典的键

标签 python reference dictionary

全部 -

我今天有一个非常基本的问题......但它一直阻止我有效地继续我的编程,所以我将其发布在这里。

我想创建一个以字典为键的字典。大概我只能传递对字典的引用作为键......只是我不知道如何在Python中做到这一点。这是我想做的事情的简单简化:

def test( dict ):
    a={}
    b={1:1}
    a[ dict ] = b
    return a

a = {0:0}
print test( a ) 

我希望 b 成为 { {0:0} : {1:1} } 形式的字典。

非常感谢任何对此的帮助。

亲切的问候 -

拍拍

最佳答案

字典的键必须是可散列项;不幸的是,字典本身是不可散列的(它们是可变的,这使得它们不具备可散列的资格)。

使用他们的项目列表,转换为排序元组,而不是:

a[tuple(sorted(dct.items()))] = b

可变对象不可散列,因为它们可以就地更改,从而导致以后的键查找失败。例如,如果您从用作键的字典中添加或删除项目,预期结果会是什么?

关于python - 如何在Python中使用字典作为字典的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12061108/

相关文章:

python - 如何在不更改 keras.json 的情况下在 keras 中使用 TensorFlow 后端?

如果缺少,Python 将元素添加到列表中的列表

python - 根据其他列上的某些条件更新 dask 数据框中列的值

java - 从 Controller 更改组合框值

python - 如何在Python中连接两个字典列表?

python - pytest属性错误: Metafunc instance has no attribute 'parameterize'

C++ - 为什么对同一对象的 2 个本地引用保持同步?

java - 该方法和构造函数似乎作用于两个不同的传入/存储变量

c++ - 引用、逻辑运算符和循环条件

python - 在 Python 中使用字典替换列表中的字符串