0

したがって、ランダムに生成された8つの数値があり、すべてが。で参照されていct[i]ます。ct[i]で参照されている番号()を追加したいct[i+1]。ただし、これによりリストインデックスが範囲外エラーになります。どうしたの?

for i in range(totrange):
    tot1 = ct[i] + ct[i+1]

totrange通常は8ですが、少し柔軟性が必要でした。

4

2 に答える 2

2

おそらくrange(len(ct)-1)、この問題を処理するために使用する必要があります。最後ii+1は、の最後のインデックスよりも大きい値ですct

例:

In [30]: ct=range(5)     #ct =[0,1,2,3,4]

In [31]: for i in range(len(ct)-1):
    print(ct[i]+ct[i+1])
   ....:     
1
3
5
7

または、zip()ベースのソリューションを使用する方がよいでしょう。インデックスを使用する必要はまったくありません。

In [32]: for x,y in zip(ct,ct[1:]):
    print (x+y)
   ....:     
1
3
5
7
于 2012-11-17T18:27:56.657 に答える
1

totrangeが8で、 8つの要素が含まれている場合ct、最後のct[i+1]呼び出しでから9番目の要素を取得しようとするためct、リストインデックスが範囲外エラーになります。

このため、 。totrangeより大きくすることはできませんlen(ct) - 1

于 2012-11-17T18:21:49.113 に答える