如何重新分配(或修改)使用另一个变量定义的Python变量而不修改它们

时间:2017-06-25 22:14:21

标签: python numpy variables variable-assignment

请查看以下代码:

import numpy as np
list1 = [1,2,3]
list2 = list1
list2.append(4)
print list2
print list1

两张照片的结果均为[1,2,3,4]。我希望list2有[1,2,3,4],list1有[1,2,3]因为我只附加了' 4' to list2。看起来分配list2 = list1将list2上的指令传送给list1。

首先,我想了解为什么会这样,其次,有没有办法让变量B与变量A相同但是B上的任何指令(重新赋值)例如),将修改B而不是A?

显然,我可以做到

list1 = [1,2,3]
list2 = [1,2,3]
list2.append(4)

得到我想要的东西。但是如果说list1是一个(numpy)100x100数组怎么办?然后,我宁愿有办法复制' list1到另一个变量,而不是手动重写它。

我不是一位经验丰富的程序员,而且对Python来说相当新手。我也试图尽可能简单地提出这个问题,但在这个网站上找不到任何直接回答的问题。请将我重定向到我可能错过的任何内容,并提前接受我的道歉。谢谢!

1 个答案:

答案 0 :(得分:0)

这样可行。

list1 = [1,2,3]
list2 = list1[:]

现在,list2.append(4) --->不会影响list1

您的第一次尝试只是复制引用,以便list1list2引用相同的变量。