2017-03-26 105 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