如何使用列表理解来转换它?

Kum*_*mar -1 python list python-3.x

l = []
for i in range(11):
    l.append(1)
    for j in range(i):
        l.append(0)

print(l)
Run Code Online (Sandbox Code Playgroud)

输出遵循一个(1, 1, 0, 1, 0, 0, 1, 0, 0, 0, ...)模式。但是,我不知道如何使用列表理解来转换嵌套 for 循环。

Nic*_*ick 5

由于需要在每次迭代中添加两个单独的元素,因此很难将其编写为理解式。它可以使用列表来实现sum

l = sum([[1] + [0] * i for i in range(11)], [])
Run Code Online (Sandbox Code Playgroud)

输出:

[
 1,
 1, 0,
 1, 0, 0,
 1, 0, 0, 0,
 1, 0, 0, 0, 0,
 1, 0, 0, 0, 0, 0,
 1, 0, 0, 0, 0, 0, 0,
 1, 0, 0, 0, 0, 0, 0, 0,
 1, 0, 0, 0, 0, 0, 0, 0, 0,
 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
]
Run Code Online (Sandbox Code Playgroud)