a = ['a']
b = ['b']
c = a
ab = [a,b]
print(c)
print(ab)
a[0] = 'c'
print(c)
print(ab)
返回:
['a']
[['a'], ['b']]
['c']
[['c'], ['b']]
我希望c列表保持原样,即['a']。但是在我更改了列表中的元素后,它发生了变化。为什么会发生这种情况,如果有的话,我可以避免它。
答案 0 :(得分:1)
您需要复制列表a
并将其分配给c
。现在,您只是将a
的引用分配给c
,这就是为什么当您修改a
时,您也会修改c
。有多种方法可以复制a
,我认为最容易阅读的方法是使用列表构造函数:
c = list(a)
答案 1 :(得分:1)
Alek或mtitan8的解决方案可能是最方便的。要非常明确,您可以import copy
然后使用c = copy.copy(a)