gpt4 book ai didi

python - Python 中将变量赋值给数字与数字列表之间的区别

转载 作者:太空宇宙 更新时间:2023-11-03 18:17:52 27 4
gpt4 key购买 nike

在Python中,如果按以下方式将数字列表分配给变量

>>>a=range(4)
>>>b=a
>>>a[2]=9
>>>b
[0,1,9,3]

但是当我以类似的方式分配单个变量时,我得到以下结果

>>>a=1
>>>b=a
>>>a=2
>>>b
1

为什么将变量分配给列表的结果是 b=1 而不是 b=2?

最佳答案

在第一个示例中,ab 都是对同一对象(列表)的引用。当您更改列表时,ab 的输出也会更改(它们仍然指向同一列表)。在第二个示例中,您将一个new整数对象分配给名称aab 现在是两个具有不同 id 的不同对象。演示:

>>> a = range(4)
>>> b = a
>>> id(a)
38845472
>>> id(b)
38845472
>>> a=1
>>> b=a
>>> id(a)
33619048
>>> id(b)
33619048
>>> b=2
>>> id(a)
33619048
>>> id(b)
33619024

关于python - Python 中将变量赋值给数字与数字列表之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24702761/

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