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

如何获取Python整数数组中最值的首个索引?

找到整数数组中最值的第一个索引

嗨,我来帮你搞定这个问题!你的原代码会输出所有等于最大值或最小值的索引,而我们需要的是第一个最小值和第一个最大值的索引,对吧?

问题分析

原代码遍历数组时,只要元素等于最值就打印索引,所以会把所有匹配项都输出。我们需要的是只捕获每个最值第一次出现的位置,不用管后续的重复值。

简洁解决方案:使用list.index()方法

Python的列表方法index()正好能满足需求,它会返回列表中第一个匹配指定值的索引。代码实现如下:

A = [1,1,8,7,5,9,6,9]

def minmaxloc(num_list):
    # 先获取数组的最小值和最大值
    min_val = min(num_list)
    max_val = max(num_list)
    # 找到第一个最小值和最大值的索引
    first_min_idx = num_list.index(min_val)
    first_max_idx = num_list.index(max_val)
    # 返回元组形式的结果
    return (first_min_idx, first_max_idx)

# 调用函数并打印结果
print(minmaxloc(A))  # 输出:(0, 5)

手动遍历实现(更灵活)

如果你想自己手动遍历数组来实现(比如需要更复杂的逻辑),可以在找到第一个最值后就停止追踪该值,甚至提前终止循环提升效率:

A = [1,1,8,7,5,9,6,9]

def minmaxloc(num_list):
    min_val = min(num_list)
    max_val = max(num_list)
    first_min_idx = None
    first_max_idx = None
    
    for idx, val in enumerate(num_list):
        # 只记录第一个最小值的索引
        if first_min_idx is None and val == min_val:
            first_min_idx = idx
        # 只记录第一个最大值的索引
        if first_max_idx is None and val == max_val:
            first_max_idx = idx
        # 两个索引都找到后,提前退出循环
        if first_min_idx is not None and first_max_idx is not None:
            break
    
    return (first_min_idx, first_max_idx)

print(minmaxloc(A))  # 输出:(0, 5)

这样修改后,就能精准返回你想要的第一个最小值索引0和第一个最大值索引5啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:21:41