Python中的一步列表操作

raj*_*123 1 python list

我有一个清单A。我通过添加1到前一个列表的每个元素来生成一个新列表,最后得到一个组合列表B+C+D。有没有一种方法可以做到这一点?

A=[12,8,4,0]
B=[i+1 for i in A]
C=[i+1 for i in B]
D=[i+1 for i in C]
print(B+C+D)
Run Code Online (Sandbox Code Playgroud)

当前和预期的输出是

[13, 9, 5, 1, 14, 10, 6, 2, 15, 11, 7, 3]
Run Code Online (Sandbox Code Playgroud)

Tom*_*zes 5

你可以这样做:

[i+j for i in range(1, 4) for j in A]
Run Code Online (Sandbox Code Playgroud)

这会产生:

[13, 9, 5, 1, 14, 10, 6, 2, 15, 11, 7, 3]
Run Code Online (Sandbox Code Playgroud)

它也可以用 来完成itertools.product,但在这种情况下,我认为它不会给你带来太多好处:

[i+j for i, j in itertools.product(range(1, 4), A)]
Run Code Online (Sandbox Code Playgroud)