2017-03-26 158 views
0

我被困在處理嵌套列表(我正在運行Python 3.4.4)。從嵌套列表創建元素列表[Python 3.4]

我有一個嵌套列表,其中我已經在子列表按字母順序排列的元素:

sortedResults = [['A0', 'B3', 'C1', 'D2', 'E3', 'F3'], ['A0', 'B1', 'C1', 'D2', 'E0', 'F0'], ['A1', 'B0', 'C1', 'D1', 'E0', 'F0'], ['A0', 'B0', 'C1', 'D2', 'E1', 'F1'], ['A0', 'B0', 'C0', 'D1', 'E1', 'F1'], ['A1', 'B0', 'C0', 'D1', 'E1', 'F1']] 

現在我想列出了每個字母,所以我想利用其具有的元素將嵌套列表中的相同索引放入新列表中。所以我想把元素myLists [0] [0]和myList [1] [0]和我的List [2] [0]等傳遞給一個新的列表,它將看起來['AO','A0 」, 'A1']

與myList中相同的[1] [1] myList中[1] [1] myList中[2] [1]等

我曾嘗試:

outList = [] 
for index, nestedList in enumerate(sortedResults): 
    for i, element in enumerate(nestedList): 
     outList += [element, sortedResults[index+1][i]] 
print(outList) 

但它給我一個錯誤:

outList += [element, sortedResults[index+1][i]] 
    IndexError: list index out of range 

所以我也試圖把打印的循環,看看是怎麼回事:

outList = [] 
for index, nestedList in enumerate(sortedResults): 
    for i, element in enumerate(nestedList): 
     outList += [element, sortedResults[index+1][i]] 
    print(outList) 

然後它運行一段時間後,打印,看起來很有希望,但最終與同樣的錯誤數輸出:

outList += [element, sortedResults[index+1][i]] 
IndexError: list index out of range 

我會是意見表示感謝。

回答

0

你可以使用numpy的陣列,以使工作更容易,他們也更快。

import numpy as np 

sortedResults = [['A0', 'B3', 'C1', 'D2', 'E3', 'F3'], 
       ['A0', 'B1', 'C1', 'D2', 'E0', 'F0'], 
       ['A1', 'B0', 'C1', 'D1', 'E0', 'F0'], 
       ['A0', 'B0', 'C1', 'D2', 'E1', 'F1'], 
       ['A0', 'B0', 'C0', 'D1', 'E1', 'F1'], 
       ['A1', 'B0', 'C0', 'D1', 'E1', 'F1']] 

A = np.array(sortedResults) 
for i in range(len(A)): 
    print(A[:,i]) 

輸出

['A0' 'A0' 'A1' 'A0' 'A0' 'A1'] 
['B3' 'B1' 'B0' 'B0' 'B0' 'B0'] 
['C1' 'C1' 'C1' 'C1' 'C0' 'C0'] 
['D2' 'D2' 'D1' 'D2' 'D1' 'D1'] 
['E3' 'E0' 'E0' 'E1' 'E1' 'E1'] 
['F3' 'F0' 'F0' 'F1' 'F1' 'F1'] 
+0

謝謝,它的工作用於我已經在這個問題中提供的數據,但是當我修改了輸入文件,其中有9個元素代替6- [[ 'A0','B3','C1','D2','E3','F3'],['A0','B1','C1','D2','E0','F0'] ,['A1','B0','C1','D1','E0','F0'],['A0','B0','C1','D2','E1','F1 '',''A0','B0','C0','D1','E1','F1'],['A1','B0','C0','D1','E1', 'F1'],['A0','B0','C1','D2','E1','F1'],['A0','B0','C0','D1','E1 ','F1'],['A1','B0','C0','D1','E1','F1']]一個錯誤:「IndexError:索引6超出了大小爲6的軸1的邊界」任何想法爲什麼以及如何解決它? – Halldis

+0

它看起來好像工作正常,如果嵌套列表的數量小於元素的數量,但我會需要的東西,可以處理的情況下,有許多嵌套列表很多元素:[['A0''B3'' C1' 'D2' 'E3' 'F3'] [ 'A0' 'B1' 'C1' 'D2' 'E0' 'F0'] [ 'A1' 'B0' 'C1' 'D1' 'E0' 'F0'] [ 'A0' 'B0' 'C1' 'D2' 'E1' 'F1'] [ 'A0' 'B0' 'C0' 'D1' 'E1' 'F1'] ['A0 ' 'B0' 'C1' 'D2' 'E1' 'F1'] [' A0' 'B0' 'C0' 'D1' 'E1' 'F1'] [ 'A0' 'B0' 'C1'' D2' 'E1' 'F1'] [ 'A0' 'B0' 'C0' 'D1' 'E1' 'F1'] [ 'A0' 'B0' 'C1' 'D2' 'E1' 'F1' ] [ 'A0' 'B0' 'C0' 'D1' 'E1' 'F1']] – Halldis

+0

與修復它:'A = np.array(sortedResults) 我在範圍內(lenOfList): outList + = [(A [:,i])]' – Halldis