为什么在下面的例子中 list2 不是 [3,5] ?
>>>list1=[3,5]
>>>list2=list1
>>>list1[0]=2
>>>list1
[2,5]
>>>list2
[2,5]
但是当我在这里尝试时它是[3,5]:
>>>list1=[3,5]
>>>list2=list1
>>>list1=[3,5,7]
>>>list2
[3,5]
请您参考如下方法:
Python 变量名指向对象。
list2=list1
使 list2 指向与 list1 相同的对象。
list1[0]=2
就地修改 list1 对象,因此 list2 也会受到影响。
相比之下,
list1=[3,5,7]
使 list1 指向不同的列表。所以 list2 和 list1 不再指向同一个对象。因此 list2 在第二种情况下仍然等于 [3, 5]。
参见 Mark Ransom's answer以获得对 Python 的变量/对象/赋值模型的很好解释。
以上图片由Online Python Tutor visualizer生成.您可以使用它来查看赋值如何逐步更改变量的值。
