2017-08-11 39 views
-3

一个列表中的更改如何反映在另一个列表中?Python中的列表引用

lst = [0, 0] 
sublist = [lst[0], lst[0], lst[1], lst[1]] 
print sublist 
>> [0, 0, 0, 0] 
lst[0] = 1 
print sublist 
>> [0, 0, 0, 0] 
# But I would like to 
>> [1, 1, 0, 0] 

我如何得到想要的结果? 对不起,我的英文。

+3

列表不支持。您需要找到其他方法来解决您希望通过这样做解决的任何问题。 – user2357112

+2

相关:https://nedbatchelder.com/text/names.html – chepner

+1

如果您想要传播效果,请确保该对象是可变的,在您的示例中,您需要使'lst'的元素变为可变。 – nos

回答

0

谢谢大家!得到它了。

lst = [[] for i in range(2)] 
sublist = [lst[0], lst[0], lst[1], lst[1]] 
print lst 
print sublist 
lst[0].append(1) 
lst[1].append(2) 
print lst 
print sublist 
lst[1][0] = 0 
print lst 
print sublist 

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