1

サイズ155の配列があります。私のプログラムでは、単語を入力してから、その単語を配列内で検索します。ただし'176'、配列の最後の単語を入力すると、list index out of rangeエラーが発生します。これはなぜですか。

i = resList.index(resiID) # --searchs list and give number where found, for last word gives 155
print len(resultss) # --prints 155
colour = resultss[i] # --error given on this line
4

2 に答える 2

3

これは予想される動作です。のをlist持っている場合、インデックスは未定義です。lenxx

例えば:

lst = [0,1]
print len(lst) # 2
print lst[0] # 0
print lst[1] # 1
print lst[len(lst)] #error
于 2013-03-14T17:26:00.207 に答える
1

インデックスが範囲外です。リストインデックスの仕組みは次のとおりです。

>>> a = list(range(10))
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> i = a.index(9)
>>> i
9
>>> a[i]
9
>>> a[10]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range

インデックスの長さが、の場合i、範囲内の任意のインデックスを使用できます0..i-1。最後の有効なインデックスはですlen(mylist) - 1

155は範囲外です。おそらく、あるリスト/反復可能()でインデックスを取得し、resListそれを別の/小さいリスト/反復可能(resultss)へのインデックスとして使用しているためです。

于 2013-03-14T17:29:41.500 に答える