python - 不能改变 python 中的原点..?

标签 python

a=[3,4]
b=[5,8]
c=[7,4]
d=[a,b,c]
print (d)
for i in range(3):
    for j in range(2):


        d[i][j]-=a[j]


print (d)

在这段 python 代码中,输出是

[[0,0], [5,8], [7,4]]

代替

[[0,0], [2,4], [4,0]]

谁能告诉我为什么?

最佳答案

d 包含对 a 的引用,而不是副本。

a 在循环的第一次迭代期间从 [3,4] 更改为 [0,0]。这就是为什么循环的下一次迭代将执行 d[i][j]-=[0,0]

您应该将 d=[a,b,c] 替换为 d = [list(a), b, c]

关于python - 不能改变 python 中的原点..?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31231016/

相关文章:

python - 为 Selenium 创建用于单击下拉菜单的 Xpath

python - 循环变量感知 numpy 的切片和向量化计算

python - 如何有效地解析 JSON 内容的 pandas 列?

python - Kafka python 优雅关闭消费者

python - 如何将分割的图像与重叠合并

python - 你能帮我在 pyBrain 中线性激活我的简单分类器神经网络吗?

python - 如何安装 tensorflow_text?

python - 具有自定义概率分布的随机索引

javascript - 仅将 Django 用于后端

python - 如何在 Keras 中计算精度和召回率