我有一个清单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)
你可以这样做:
[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)
| 归档时间: |
|
| 查看次数: |
70 次 |
| 最近记录: |