【发布时间】:2013-10-25 04:36:17
【问题描述】:
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']。但是在我更改了 a 列表中的元素后,它发生了变化。为什么会发生这种情况,如果有的话,我该如何避免。
【问题讨论】:
-
这看起来像 Python。如果是这样,请将
a列表的副本存储在c中,而不是引用:c = a[:]。 -
是的,抱歉,忘记指明是python!这很好用,我不熟悉区别。
-
有关复制/克隆列表的各种选项,请参阅stackoverflow.com/a/2612815/2530083
标签: python list variable-assignment