设置了一个变量。另一个变量设置为第一个。第一个改变值。第二个没有。从一开始,这就是编程的本质。
>>> a = 1
>>> b = a
>>> b = b - 1
>>> b
0
>>> a
1
然后我将其扩展到 Python 列表。声明并附加了一个列表。另一个列表被声明为等于第一个。第二个列表中的值发生变化。奇怪的是,第一个列表中的值虽然没有直接作用,但也会发生变化。
>>> alist = list()
>>> blist = list()
>>> alist.append(1)
>>> alist.append(2)
>>> alist
[1, 2]
>>> blist
[]
>>> blist = alist
>>> alist.remove(1)
>>> alist
[2]
>>> blist
[2]
>>>
为什么是这样?
以及如何防止这种情况发生——我想alist
对blist
(不可变的,如果你愿意的话)的更改不感兴趣?