2016-11-18 4 views
-1

私はそのリストをエントリとして持っている配列を持っています(例:array =([1,2]、[2,3]、[3,4]))、これらのリストをループしたいそしてそれが基準に一致するかどうかを確認するために特定の項目を比較したが、私はこのエラーを得続ける:「はIndexError:リストインデックスが範囲外です」リストのインデックスが範囲外ですか? (Python)

が、これは私のコードです:

for i in enumerate(arr): 
     if arr([i][6]) == 0.0: 
      humans= humans+[arr[i,col]] 

私がチェックしています例えば配列array [1] [6]を出力することで実際の配列になります。そこには値があるという事実を知っています。だから、なぜそれがループしないのでしょうか?

+0

です。あなたはスタックトレースを投稿できますか? –

+0

あなたは 'arr [i、col]'について何を知っていますか? 'i'と' col'の値はどうですか? Pythonがあなたにリストのインデックスが範囲外であることを伝えている場合は、それが保証されます。 –

+0

'arr([i] [6])'です。単一の要素リストである '[i]'の7番目の要素で 'arr'を呼び出しています。 –

答えて

1

enumerate()のご理解は間違っています。各項目がそのインデックスにマップされたタプルのリストを返します。ここでは、それはあなたのケースで返される値は次のとおりです。

>>> list(enumerate(arr)) 
[(0, [1, 2]), (1, [2, 3]), (2, [3, 4])] 

iは0からarrの長さに価値を持つことになりますので、反復処理したい場合は、としてrange()を使用する必要があります。また

for i in range(len(arr)) 

あなたのリストの内容は次のとおりです。

arr = [[1,2],[2,3],[3,4]] 

それは3X2のリストである、とあなたはarr[i][6]をやっている、それは各サブリットルの長さとしてはIndexErrorを与えます `i`がタプルである`(インデックス、値) `:あなたが列挙(ARR)に私のために を入力すると、ISTは、ちょうど2つの

+0

2行目に同じエラーが表示されます。 – Sam

+0

@Sam:編集内容を確認してください –

+0

ありがとう!働いた! – Sam

関連する問題