2017-03-26 20 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]と私のリスト[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'、 'B1'、 'C​​1'、 'D2'、 'E0'、 'F0']のように、 F1、F2、F1、F1、F1、F1、F1、F1、F1、F1、F1、F1、F2、 '、' A1 '、' B0 '、' C0 '、' D1 '、' E1 '、' A1 '、' B0 '、' D1 '、' E1 ' 「F1」、「A0」、「B0」、「C1」、「D2」、「E1」、「F1」、「A0」、「B0」、「C0」、「D1」、「E1」 '、' F1 ']、[' A1 '、' B0 '、' C0 '、' D1 '、' E1 '、' F1 ']]エラー: "IndexError:インデックス6は、サイズ1の軸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 A2 '' B0 '' C1 '' D2 '' E1 '' F1 '' 012 '' 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)内のiのための: outList + = [(A [:、i])] ' – Halldis

関連する問題