在 Python 中显示不同值的字典对象的 ID

Id of dictionary object showing different value in Python

提问人:Reactoo 提问时间:6/5/2021 更新时间:6/5/2021 访问量:316

问:

到目前为止,我所学到的是 python 中的字典是可变的,即我们可以在不更改其对象 id 的情况下更改字典对象的任何值。

但是当我更改字典的值时,当我看到结果时,id 发生了变化。

这是我所做的。

d = {1:"apple",2:"ball"}
print(d)
print(id(d))
d = {1:"orange",2:"ball"}
print(id(d))

当我运行该文件时,结果如下:

{1: 'apple', 2: 'ball'}
10188632
10188672

正如我们所看到的,对象的 id 发生了变化,但在我看来,id 保持不变,因为字典是可变对象。

字典 对象 不变性 可变

评论

6赞 fsimonjetz 6/5/2021
您正在用新词典覆盖原始词典,因此 ID 当然会发生变化。如果通过引用(如 )更改它,则 ID 保持不变。d[1] = "orange"
4赞 user2357112 6/5/2021
“我们可以在不更改其对象 ID 的情况下更改字典对象的任何值”——你可以,但你没有。字典是可变的这一事实并不意味着你真的改变了它。您替换了原来的字典。
0赞 Reactoo 6/5/2021
谢谢大家,这是我这边的一个错误。
0赞 wjandrea 6/6/2021
这回答了你的问题吗?变量的“使用”和“重新绑定”之间的区别是什么?

答: 暂无答案