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

如何获取列表中最后一个最小值的索引?

解决获取列表最后一个最小值索引的问题

你的代码问题出在判断逻辑和语法细节上:

  • 原判断条件rain_data[val] < min_value只会在当前元素小于已记录的最小值时更新索引,遇到和最小值相等的元素不会触发更新,所以第一个最小值的索引会被保留到循环结束。
  • 函数定义def minimum(rain_data)末尾缺少冒号,属于语法错误。

修改方案很简单,把判断条件改成<=,这样每次遇到小于等于当前最小值的元素时,都会更新最小值和索引,遍历完成后就能得到最后一个最小值的索引。同时补全函数语法,并添加函数调用:

rain_data =  [33, 57, 60, 55, 53, 33]
min_value = rain_data[0]
min_index = 0

def minimum(rain_data):
    global min_value, min_index  # 声明使用全局变量
    for val in range(len(rain_data)):
        if rain_data[val] <= min_value:  # 修改为<=,匹配相等的最小值
            min_value = rain_data[val]
            min_index = val

minimum(rain_data)  # 调用函数
print(min_value)
print(min_index)
results = (float(min_value) , min_index)

如果不想用全局变量,更推荐把最小值和索引的初始化放到函数内部,让函数直接返回结果,符合函数封装的规范:

rain_data =  [33, 57, 60, 55, 53, 33]

def minimum(rain_data):
    min_value = rain_data[0]
    min_index = 0
    for val in range(len(rain_data)):
        if rain_data[val] <= min_value:
            min_value = rain_data[val]
            min_index = val
    return (float(min_value), min_index)

results = minimum(rain_data)
print(results[0])
print(results[1])

运行后就能得到最小值33和它的最后一个索引5。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 16:55:22