gpt4 book ai didi

python - 为什么字典键没有改变

转载 作者:行者123 更新时间:2023-11-30 22:24:22 27 4
gpt4 key购买 nike

a = (1,2)  
b = {a:1}
print(b[a]) # This gives 1
a = (1,2,3)
print(b[a]) # This gives error but b[(1,2)] is working fine

我的理解是,当 a 更改为 (1,2,3) 后,python 不会运行垃圾收集器,因为元组 (1,2,3) 被创建为新对象,并且元组 (1,2) b 中仍然被引用。

我不明白的是为什么“a”更改后“b”不更改 key

最佳答案

b = {a:1} 创建一个字典,其中 a 的值作为键,1 作为值。当您为a分配值时,您会创建一个新值,并b重新训练旧值作为其键。

以下示例,使用 id ,可以说明一下:

>>> a = (1,2)
>>> b = {a:1}
>>> id(a)
139681226321288
>>> a = (1,2,3)
>>> id(a)
139681416297520
>>> id(b.keys()[0])
139681226321288

关于python - 为什么字典键没有改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47845494/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com