为什么我的列表会在Python中改变它们的值?

时间:2017-02-17 09:58:35

标签: python

我是Python的新手,我真的不明白为什么会这样:

vector1 = [1,0,0,1]
left  = vector1
print(str(left))

right = vector1
right[0] = 2

print(str(left))
print(str(right))

输出结果为:

[1, 0, 0, 1]
[2, 0, 0, 1]
[2, 0, 0, 1]

我真正想要的是:

[1, 0, 0, 1]
[1, 0, 0, 1]
[2, 0, 0, 1]

为什么'left'向量会更新,如果我之前使用初始'vector1'值修复它?

我确信这是一个新手问题,但我习惯在MatLab中编码而且我感到困惑......

提前致谢!

1 个答案:

答案 0 :(得分:1)

当你说

left  = vector1

Python不会复制列表的内容,但现在剩下的新列表引用了vector1

因此,当您更改新列表时,旧列表也会更改。