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
相关产品推荐
相关产品推荐

