索引在列表中添加两个项目时出错

时间:2012-11-17 18:18:41

标签: python

所以,我有8个随机生成的数字,全都用ct[i]引用。我想添加一个数字(ct[i])和ct[i+1]引用的数字。但是,这会产生列表索引超出范围错误。怎么了?

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

totrange通常为8,但我希望有一点灵活性。

2 个答案:

答案 0 :(得分:2)

您应该使用range(len(ct)-1)来处理此问题,因为最后ii+1是一个大于ct的最后一个索引的值。< / p>

的示例:

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

答案 1 :(得分:1)

如果totrange为8且ct包含8个元素,则最后ct[i+1]次调用将尝试从ct获取第9个元素,导致列表索引超出范围错误。

因此,totrange绝不应大于len(ct) - 1