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

如何获取列表最大值最小索引与最小值最大索引并比较?

解决列表中最大值最小索引与最小值最大索引的判断问题

你遇到的问题核心在于list.index()方法的特性:它只会返回第一个匹配目标值的索引,这就导致你无法拿到最小值的最后出现位置。下面给你两种直观的解决方案,帮你准确获取需要的索引:

方法一:利用列表反转与索引计算(简洁高效)

lijst = [2, 9, 15, 36, 36, 3, 2, 36]

# 1. 获取最大值的最小索引(index()默认返回第一个匹配项,正好是最小索引)
max_value = max(lijst)
max_min_index = lijst.index(max_value)  # 结果:3

# 2. 获取最小值的最大索引
min_value = min(lijst)
# 反转列表后找到第一个匹配的索引,再转换为原列表的最后匹配位置
min_max_index = len(lijst) - 1 - lijst[::-1].index(min_value)  # 结果:6

# 执行你的判断逻辑
if max_min_index <= min_max_index:
    print("最大值的最小索引 ≤ 最小值的最大索引")
else:
    print("最大值的最小索引 > 最小值的最大索引")

方法二:用列表推导式收集所有索引(可读性更强)

如果你觉得反转的逻辑有点绕,也可以直接收集所有匹配值的索引,再按需取最大/最小值:

lijst = [2, 9, 15, 36, 36, 3, 2, 36]

max_value = max(lijst)
# 收集所有最大值的索引,取最小的那个(其实用index()更直接,这里是演示思路)
max_indices = [i for i, val in enumerate(lijst) if val == max_value]
max_min_index = min(max_indices)  # 结果:3

min_value = min(lijst)
# 收集所有最小值的索引,取最大的那个
min_indices = [i for i, val in enumerate(lijst) if val == min_value]
min_max_index = max(min_indices)  # 结果:6

# 判断逻辑
if max_min_index <= min_max_index:
    # 你的业务代码
    pass

为什么原来的代码不行?

你的原代码中lijst.index(minimum)只会返回最小值第一次出现的索引(比如例子中的0),但你需要的是最小值最后一次出现的索引(例子中的6),所以这部分逻辑需要调整。而最大值的索引获取是没问题的,因为index()返回的第一个匹配项就是最小的索引。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 15:22:59