首页 > 解决方案 > Python 中的引用赋值 - 为什么值没有改变?

问题描述

我知道python中的“变量赋值”实际上是将名称(变量)绑定/重新绑定到对象。

b = [1,2,3]
a = b[2] # binding a to b[2] ?
a = 1000

b 是[1, 2, 3]

在这个改变之后,为什么 b 没有改变?

这是另一个例子:

b = [1,2,3]
a = b
a[0] = 1000

这种情况 b 是[1000, 2, 3]

Python引用绑定中不是赋值吗?

谢谢

标签: python

解决方案


a = b[2] # binding a to b[2] ?

具体来说,这会将名称 绑定到 .引用a的相同b[2]。它不绑定a到列表b中 index 处的元素2。该名称a完全独立于从中获取其值的列表。

a = 1000

现在您将名称绑定a到一个新值 integer 1000。既然a与 没有关联bb就不会改变。

在您的第二个示例中:

a = b

现在a绑定到绑定到的相同列表值b。所以当你这样做时

a[0] = 1000

您修改基础列表中具有两个不同名称的元素。当您通过任一名称访问列表时,您将看到相同的值。


推荐阅读