我看到了一篇有关如何将列表分配给另一个人的文章,其中包含以下代码:
a=[1]
b=a
print(a)
print(b)
a=[2]
print(a)
print(b)
这是非常基本的,应该返回:
[1]
[1]
[2]
[2]
相反,它返回:
[1]
[1]
[2]
[1]
这显然是因为变量不同步。我想知道为什么会这样,是因为没有同步,还是在python 3.7.0上不起作用?
答案 0 :(得分:0)
执行a=[2]
创建另一个引用,因此a
和b
变量名之间的链接断开。
要为a
保留相同的引用,请使用 slice分配,它可以重用a
引用(并且如果与以前的值不同,也可以增加/缩小列表的大小)
a[:] = [2]
(在您的特定情况下,如果您只想更改列表的值,只需更改a[0] = 2
之类的元素)