You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python求列表平均值函数报错:List index out of range问题求助

解决列表平均值计算的IndexError问题

错误原因

你的循环逻辑存在问题:for i in table是直接遍历列表中的元素值,而非列表的索引。以你的number_table为例,循环时i会依次取到1、3、5、100这四个值,当i=100时,table[100]试图访问列表第101个元素,但原列表只有4个元素(索引范围是0-3),因此触发IndexError: list index out of range。

修正方案

方案1:直接遍历元素累加(推荐)

直接遍历列表中的元素进行累加,无需通过索引访问,逻辑更直观:

number_table = [1, 3, 5, 100]

def average(table, count):
    sum_total = 0  # 避免使用内置函数名`sum`作为变量,防止覆盖
    for num in table:
        sum_total += num

    return sum_total / count

print(average(number_table, 4))

方案2:通过合法索引遍历

如果坚持使用索引,可通过range(count)生成合法的索引范围(0到count-1):

number_table = [1, 3, 5, 100]

def average(table, count):
    sum_total = 0
    for i in range(count):
        sum_total += table[i]

    return sum_total / count

print(average(number_table, 4))

方案3:利用内置函数简化代码

Python内置的sum()函数可直接计算列表元素总和,代码更简洁高效:

number_table = [1, 3, 5, 100]

def average(table, count):
    return sum(table) / count

print(average(number_table, 4))

内容的提问来源于stack exchange,提问作者duckquy puf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 16:17:07