python-3.x - 理解 python 列表的问题
问题描述
eg.a
x = 10
y = x
x = 10 + 2
a = x
print(x)
print(y)
print(a)
这给出了输出: 12 , 10 , 12
我明白了。
但
a = ['a', 'b', 'c', 'd']
x = a
a.insert(1, 'x')
print(x)
给出 ['a', 'x', 'b', 'c', 'd']
我不明白的是,这应该给出 ['a', 'b', 'c', 'd'] 因为我在将字符 x 插入到列表 a 的第一个索引之前打印了 x=a 的值。就像在 eg.a 中一样,列表不遵循这些步骤。为什么?
解决方案
这是因为您正在分配 x=a。这里x指的是a的数据位置地址,不是复制数据。所以,当发生变化时,它就会被更新。以及 x 指的是相同的位置。所以,你得到了这个结果。
推荐阅读
- c# - MonoLauncher 实例在停止我的 Visual Studio 调试后暂停
- go - 我怎么知道我所有的 goroutine 确实在等待使用 golang 的同步包的条件
- python - Pyclbr readmodule 在另一个目录的脚本中运行时失败
- html - CSS Less手表编译器-如何传递参数并根据参数生成CSS的多个副本?
- arduino - Arduino打印我没有告诉它打印的东西
- rest - 如何使用 Apache Camel 将 SOAP XML 转换为 REST JSON 请求并以相反的顺序返回响应
- python - 如何为每个带有条件的 id 分配二进制值
- mysql - mySQL全文搜索两个字母单词
- r - 如何使用 rdplot 绘制带有置信区间的回归不连续图?
- java - 我可以将注释传递给扩展它的子类吗?