将修改后的列表附加到列表中

Ale*_*Ale 1 python list append python-2.7

我有一个列表a,我将它附加到列表中l,然后我修改列表a,然后我再次将其追加到l.

我的代码是:

a = []
l = []
a.append(1)
l.append(a)

a.append(2)
l.append(a)
Run Code Online (Sandbox Code Playgroud)

但是,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))
Run Code Online (Sandbox Code Playgroud)

我的问题是:为什么将修改后的列表附加al已经包含的列表中的操作a甚至会修改l附加的先前项目a

Car*_*ans 5

这是因为python中的列表是可变对象.这意味着当您为变量分配列表时,您正在向该列表传递"引用"(如c指针).