从嵌套列表创建元素列表[Python 3.4]

时间:2017-03-26 17:52:29

标签: python numpy for-loop python-3.4 nested-lists

我很难处理嵌套列表(我正在运行Python 3.4.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&# 39;,' 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

所以我也尝试将print放在循环中以查看发生了什么:

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

我很感激你的建议。

1 个答案:

答案 0 :(得分: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']