将列表添加到空的python列表问题

mar*_*rco 3 python loops list append range

我是Python初学者,没有任何编程经验.如果这个问题听起来太蹩脚,我会提前道歉,但我有些困惑.它与将特定列表(l2)添加到空列表(l1)有关.我想要做的是在每次迭代中增加每个"l2"元素的值,然后将其添加到l2列表中.这是代码:

l1 = []
l2 = [0,1,2,3]

for i in range(3):
    l2[0] = l2[0] + 1
    l2[1] = l2[1] + 1
    l2[2] = l2[2] + 1
    l2[3] = l2[3] + 1
    print l2
    l1.append(l2)

print l1
Run Code Online (Sandbox Code Playgroud)

这是我得到的打印结果:

[1, 2, 3, 4]
[2, 3, 4, 5]
[3, 4, 5, 6]
[[3, 4, 5, 6], [3, 4, 5, 6], [3, 4, 5, 6]]
Run Code Online (Sandbox Code Playgroud)

为什么l2列表看起来不像这样:

[[1, 2, 3, 4], [2, 3, 4, 5], [3, 4, 5, 6]]
Run Code Online (Sandbox Code Playgroud)

?感谢您的答复.

ice*_*ees 5

这是因为您每次都附加相同的列表对象.您需要在附加列表对象之前复制该列表对象,以确保附加其他对象.

l1.append(l2[:])
Run Code Online (Sandbox Code Playgroud)