gpt4 book ai didi

python - 在python中按列连接数组

转载 作者:行者123 更新时间:2023-12-03 22:56:49 25 4
gpt4 key购买 nike

我有一个数组列表,其中每个数组都是一个列表列表。我想把它变成一个包含所有列的数组。我试过使用 for 循环来完成这项工作,但感觉它在列表理解中应该是可行的。有没有一个很好的单线可以做到这一点?

    Example Input: [[[1,2],[3,4],[5,6]],[[7,8],[9,10],[11,12]]]

Desired Output: [[1,2,7,8],[3,4,9,10],[5,6,11,12]]
注意:示例在主列表中只有两个数组,但我的实际数据有更多,所以我正在寻找适用于 N 个子数组的东西。
编辑:
试图解决这个问题的例子
适用于两个人,但不能概括:
[input[0][i]+input[1][i] for i in range(len(input[0]))]
这些不起作用,但显示了这个想法:
[[element for table in input for element in row] for row in table]
[[*imput[j][i] for j in range(len(input))] for i in range(len(input[0]))]
编辑:选择的答案仅使用列表理解和 zip,但所有答案(截至目前)都有效,因此请使用最适合您的风格/用例的答案。

最佳答案

您可以从标准 list flattening pattern 中概括这一点。和 zip :

>>> L = [[[1,2],[3,4],[5,6]],[[7,8],[9,10],[11,12]]]
>>> list([y for z in x for y in z] for x in zip(*L))
[[1, 2, 7, 8], [3, 4, 9, 10], [5, 6, 11, 12]]
>>> L = [[[1,2],[3,4],[5,6]],[[7,8],[9,10],[11,12]],[[13,14],[15,16],[17,18]]]
>>> list([y for z in x for y in z] for x in zip(*L))
[[1, 2, 7, 8, 13, 14], [3, 4, 9, 10, 15, 16], [5, 6, 11, 12, 17, 18]]

关于python - 在python中按列连接数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62982033/

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