我有一个列表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 append 到已经包含 a 的列表 l 中的操作甚至会修改之前的项目l append 为 a?
请您参考如下方法:
这是因为 Python 中的列表是可变对象。这意味着当您将一个列表分配给一个变量时,您将传递一个对该列表的“引用”(如 c 指针)。
