我有一个列表a
,我将其附加到列表l
中,然后我修改列表a
,然后将其重新附加到l
。
我的代码是:
a = []
l = []
a.append(1)
l.append(a)
a.append(2)
l.append(a)
但是,l
现在= [[1,2],[1,2]]
,而我希望l
为[[1], [1,2]]
。
我通过修改我的代码解决了以下问题:
a = []
l = []
a.append(1)
l.append(list(a))
a.append(2)
l.append(list(a))
我的问题是:为什么将修改后的列表a
附加到已包含l
的列表a
中的操作会修改l
之前添加为{{{}}的项目1}}?
答案 0 :(得分:5)
这是因为python中的列表是可变对象。这意味着当您为变量分配列表时,您正在传递"引用"到该列表(如c
指针)。