我有這個二維串列
[["a1", "b1", "c1"], ["a2", "b2", "c2"]]
我想轉換為列視圖。每個內部串列具有相同的大小。
預期結果 :
[['a1', 'a2'], ['b1', 'b2'], ['c1', 'c2']]
我正在尋找一個單行的答案。
我已經嘗試了下面的代碼,但需要一行來初始化l_col變數,兩行用于回圈。
l = [["a1", "b1", "c1"], ["a2", "b2", "c2"]]
l_col = []
for i in range(len(l[0])):
l_col.append([x[i] for x in l])
print(l_col) # [['a1', 'a2'], ['b1', 'b2'], ['c1', 'c2']]
謝謝你的幫助。
uj5u.com熱心網友回復:
在較新版本的 Python 中,您可以使用:
A = [["a1", "b1", "c1"], ["a2", "b2", "c2"]]
A_transpose = list(map(list,zip(*A)))
print('A_transpose: ', A_transpose)
# output:
# A_transpose: [['a1', 'a2'], ['b1', 'b2'], ['c1', 'c2']]
PS。對于許多應用程式,list(zip(*A))也適用。但是,這個簡短的命令回傳內部維度中的元組:[('a1', 'a2'), ('b1', 'b2'), ('c1', 'c2')]。在上面的代碼中,我們通過引入map(list,...).
uj5u.com熱心網友回復:
[[x[i] for x in l] for i in range(len(l[0]))]
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/530230.html
標籤:Python列表
下一篇:如何覆寫FORIN回圈串列行為?
