亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在python中按列連接數組

在python中按列連接數組

陪伴而非守候 2023-03-16 09:51:23
我有一個數組列表,其中每個數組都是一個列表列表。我想把它變成一個包含所有列的數組。我試過使用 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]))]編輯:僅使用列表理解和壓縮的選定答案,但所有答案(截至目前)都有效,因此請使用最適合您的風格/用例的答案。
查看完整描述

4 回答

?
Smart貓小萌

TA貢獻1911條經驗 獲得超7個贊

您可以從標準列表扁平化模式和中概括這一點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]]


查看完整回答
反對 回復 2023-03-16
?
開滿天機

TA貢獻1786條經驗 獲得超13個贊

如果你不介意它是列表中的一個元組。你也可以嘗試:


from itertools import chain

a = [[[1, 2], [3, 4], [5, 6]], [[7, 8], [9, 10], [11, 12]], [[13, 14], [15, 16], [17, 18]]]

output = list(map(list, map(chain.from_iterable, zip(*a))))


# [[1, 2, 7, 8, 13, 14], [3, 4, 9, 10, 15, 16], [5, 6, 11, 12, 17, 18]]


查看完整回答
反對 回復 2023-03-16
?
紫衣仙女

TA貢獻1839條經驗 獲得超15個贊

這是一種方法:


initial = [[[1,2],[3,4],[5,6]],[[7,8],[9,10],[11,12]]]

output = [a+b for a, b in zip(*initial)]


print(output)

如果您有更多列表,這也適用:


import itertools


initial = [[[1,2],[3,4],[5,6]],[[7,8],[9,10],[11,12]],[[13,14],[15,16],[17,18]]]

output = [list(itertools.chain.from_iterable(values)) for values in zip(*initial)]


print(output)


查看完整回答
反對 回復 2023-03-16
?
米脂

TA貢獻1836條經驗 獲得超3個贊

這樣就可以了,我將您的輸入命名為first

[*map(lambda x: list(i for s in x for i in s), zip(*first))]
[[1, 2, 7, 8], [3, 4, 9, 10], [5, 6, 11, 12]]


查看完整回答
反對 回復 2023-03-16
  • 4 回答
  • 0 關注
  • 143 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號