列表推導式的第一個表達式可以是任何表達式,包括另外一個列表推導式。
考慮下面的3×4矩陣的示例,其被實現(xiàn)為長度為4的3個列表的列表:
創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務,包含不限于成都做網(wǎng)站、成都網(wǎng)站制作、嶧城網(wǎng)絡推廣、小程序開發(fā)、嶧城網(wǎng)絡營銷、嶧城企業(yè)策劃、嶧城品牌公關、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)為所有大學生創(chuàng)業(yè)者提供嶧城建站搭建服務,24小時服務熱線:028-86922220,官方網(wǎng)址:www.cdcxhl.com
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]]
內(nèi)建函數(shù)復雜的流程句,zip()函數(shù)這個更容易實現(xiàn):
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)]