索引错误:列出附加语法Python

时间:2015-09-02 01:56:15

标签: python list indexing

我遇到了这段代码的问题:

while numSelector <= len(nums)+1:
    average = average + nums[numSelector]
    numSelector += 1

我从代码中收到此错误:

  

追踪(最近一次通话):     文件&#34; C:\ Users \ nghia_000 \ Documents \ Programming \ Python27 \ AveragingCalculator.py&#34;,第11行,in       average = average + nums [numSelector]   IndexError:列表索引超出范围

知道如何解决这个问题吗?

3 个答案:

答案 0 :(得分:4)

如果列表的长度为n,则它包含索引0到n-1的元素。尝试:

numSelector = 0
while numSelector < len(nums):
    average = average + nums[numSelector]
    numSelector += 1

更好的方法是使用for循环直接遍历列表中的数字:

for num in nums:
    average += num

答案 1 :(得分:0)

假设len(nums) == 5。这一行:

while numSelector <= len(nums) + 1:

表示&#34;继续前进,直到numSelector不超过6.但numSelector只有五个元素 - 0,1,2,3,4。

答案 2 :(得分:0)

将条件更改为 numSelector&lt; = len(nums)-1 numSelector&lt; len(nums)会为你做的。