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

Python查找列表最大值时出现索引越界错误求助

问题原因

你代码里的for index in numbers是遍历列表中的元素值,而非索引。比如第一个循环拿到的是12,执行numbers[12]时,你的列表只有9个元素,最大合法索引是8,自然触发index out of range错误。

另外还有个潜在问题:你把largest初始化为0,如果列表全是负数,最终结果会是0,不符合预期。

修正方案

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

不用索引,直接遍历列表中的数值,对比更新最大值:

numbers = [12, 33, 44, 55, 11, 19, 98, 17, 12]
largest = numbers[0]  # 用列表第一个元素初始化,适配所有数值场景
for num in numbers:
    if largest < num:
        largest = num
print(largest)

方案2:通过索引遍历

如果一定要用索引,需用range(len(numbers))生成合法的索引范围:

numbers = [12, 33, 44, 55, 11, 19, 98, 17, 12]
largest = numbers[0]
for index in range(len(numbers)):
    if largest < numbers[index]:
        largest = numbers[index]
print(largest)

方案3:用Python内置函数(最简)

Python自带max()函数可直接获取列表最大值:

numbers = [12, 33, 44, 55, 11, 19, 98, 17, 12]
print(max(numbers))

内容的提问来源于stack exchange,提问作者Muhammad Mu'aaz Ansari

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 09:57:37