python - 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引用绑定中不是赋值吗?
谢谢
解决方案
a = b[2] # binding a to b[2] ?
具体来说,这会将名称 绑定到 .引用a
的相同值b[2]
。它不绑定a
到列表b
中 index 处的元素2
。该名称a
完全独立于从中获取其值的列表。
a = 1000
现在您将名称绑定a
到一个新值 integer 1000
。既然a
与 没有关联b
,b
就不会改变。
在您的第二个示例中:
a = b
现在a
绑定到绑定到的相同列表值b
。所以当你这样做时
a[0] = 1000
您修改基础列表中具有两个不同名称的元素。当您通过任一名称访问列表时,您将看到相同的值。
推荐阅读
- bash - 递归(许多子目录)查找pdf文件并合并为一个pdf文件(linux,bash)
- python - 在处理上述异常的过程中,发生了另一个异常:'Date'
- python - Python RE lib - 返回匹配和无
- xamarin.android - 获取密码列表 Wi-Fi
- ruby-on-rails - Ruby on rails 6,使用 devise gem 时如何管理乘法omniauth 提供程序
- javascript - ext js 中的 Tree-Grid 无法正确显示值字段
- ios - 如何从磁盘文件中指定与 iOS 模拟器兼容的 Metal 纹理格式?
- arrays - 为什么将 React 状态数组传递给组件使其成为一个数组的数组
- asp.net-core - 使用 Skoruba IdentityServer4 管理项目(端口 9000)
- java - 开关盒不打印到控制台?