gpt4 book ai didi

python - 在 Python 中将多个列表合并为一个列表

转载 作者:行者123 更新时间:2023-12-01 22:53:57 26 4
gpt4 key购买 nike

我有一个列表 X。我想附加元素 X[0][0],X[1][0],X[2][0], X[1][0],X[ 1][1],X[2][1] 等等。我展示了当前和预期的产出。

X=[[[1], [2], [3], [4], [5]], [[8], [4], [6], [2], [3]],[[9], [1], [2], [5], [1]]]
X1=[]
for i in range(0,len(X)):
for j in range(0,len(X[0])):
X1=X[i][j]
X1.append(X)

当前输出为

[1,
[[[1, [...]], [2, [...]], [3, [...]], [4, [...]], [5, [...]]],
[[8, [...]], [4, [...]], [6, [...]], [2, [...]], [3, [...]]],
[[9, [...]], [1, [...]], [2, [...]], [5, [...]], [...]]]]

预期的输出是

[[1,8,9], [2,4,1], [3,6,2], [4,2,5], [5,3,1]]

最佳答案

使用zip遍历子列表,然后添加每个内部列表,你可以使用列表理解:

>>> [x+y+z for (x,y,z) in zip(X[0], X[1], X[2])]

[[1, 8, 9], [2, 4, 1], [3, 6, 2], [4, 2, 5], [5, 3, 1]]

或者你可以使用 functools 中的 reduce 并将解压后的列表传递给 zip 如果你不确定有多少子列表

>>> from functools import reduce 
>>> [reduce(lambda x,y: x+y, v) for v in zip(*X)]

[[1, 8, 9], [2, 4, 1], [3, 6, 2], [4, 2, 5], [5, 3, 1]]

另一种方法是调用 sum 迭代传递给 zip 的解压缩列表,正如@Mad Physicist 在评论中所建议的:

>>> [sum(x, start=[]) for x in zip(*X)]

[[1, 8, 9], [2, 4, 1], [3, 6, 2], [4, 2, 5], [5, 3, 1]]

关于python - 在 Python 中将多个列表合并为一个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73690302/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com