第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

在python中按列連接數(shù)組

在python中按列連接數(shù)組

陪伴而非守候 2023-03-16 09:51:23
我有一個(gè)數(shù)組列表,其中每個(gè)數(shù)組都是一個(gè)列表列表。我想把它變成一個(gè)包含所有列的數(shù)組。我試過(guò)使用 for 循環(huán)來(lái)完成這項(xiàng)工作,但感覺(jué)它在列表理解中應(yīng)該是可行的。有沒(méi)有一個(gè)很好的單線可以做到這一點(diǎn)?    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]]注意:示例在主列表中只有兩個(gè)數(shù)組,但我的實(shí)際數(shù)據(jù)有更多,所以我正在尋找適用于 N 個(gè)子數(shù)組的東西。編輯:試圖解決這個(gè)問(wèn)題的例子適用于兩個(gè)但不概括:[input[0][i]+input[1][i] for i in range(len(input[0]))]這些不起作用,但顯示了這個(gè)想法:[[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]))]編輯:僅使用列表理解和壓縮的選定答案,但所有答案(截至目前)都有效,因此請(qǐng)使用最適合您的風(fēng)格/用例的答案。
查看完整描述

4 回答

?
Smart貓小萌

TA貢獻(xiàn)1911條經(jīng)驗(yàn) 獲得超7個(gè)贊

您可以從標(biāo)準(zhǔn)列表扁平化模式和中概括這一點(diǎn)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]]


查看完整回答
反對(duì) 回復(fù) 2023-03-16
?
開(kāi)滿(mǎn)天機(jī)

TA貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超13個(gè)贊

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


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]]


查看完整回答
反對(duì) 回復(fù) 2023-03-16
?
紫衣仙女

TA貢獻(xiàn)1839條經(jīng)驗(yàn) 獲得超15個(gè)贊

這是一種方法:


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)


查看完整回答
反對(duì) 回復(fù) 2023-03-16
?
米脂

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超3個(gè)贊

這樣就可以了,我將您的輸入命名為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]]


查看完整回答
反對(duì) 回復(fù) 2023-03-16
  • 4 回答
  • 0 關(guān)注
  • 139 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)