列表推導式的第一個表達式可以是任何表達式,包括另外一個列表推導式。
考慮下面的3×4矩陣的示例,其被實現為長度為4的3個列表的列表:
list = [
[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]
]
#下面的列表推導式將轉置行和列:
new_list = [[n[i] for n in list] for i in range(4)]
print(new_list)
#輸出結果:
[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]
上面的例子等效于:
list = [
[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]
]
li = []
for i in range(4):
li.append([n[i] for n in list])
print(li)
#輸出結果:
[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]
內建函數復雜的流程句,zip()函數這個更容易實現:
list = [
[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]
]
list(zip(*list))
輸出:
[(1, 5, 9), (2, 6, 10), (3, 7, 11), (4, 8, 12)]
另外有需要云服務器可以了解下創(chuàng)新互聯cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。