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

Python如何删除列表单个最大值同时保留其余重复值

你原来的代码逻辑是过滤所有和最大值相等的元素,因此所有重复的最大值都会被删除,只要调整为仅跳过第一个出现的最大值即可实现需求,以下是可行方案:

实现仅删除一个最大值的方法

方法1:通过索引删除首个出现的最大值(推荐,代码简洁)

先获取列表最大值,再找到它第一次出现的索引,删除该索引对应的元素即可,不会移除其他重复的最大值:

my_list = [11, 11, 10]
max_val = max(my_list)
# 找到最大值第一次出现的索引
first_max_idx = my_list.index(max_val)
# 生成新列表(不修改原列表)
new_list = my_list[:first_max_idx] + my_list[first_max_idx+1:]
print(new_list) # 输出 [11, 10]

如果允许修改原列表,直接调用pop方法即可:

my_list = [11, 11, 10]
my_list.pop(my_list.index(max(my_list)))
print(my_list) # 输出 [11, 10]

方法2:遍历控制跳过单个最大值

如果需要自定义删除第N个最大值(比如删除第二个出现的最大值),可以通过计数控制逻辑实现:

my_list = [11, 11, 10]
max_val = max(my_list)
remove_count = 0
res = []
for num in my_list:
    # 仅跳过第一个匹配的最大值
    if num == max_val and remove_count < 1:
        remove_count += 1
        continue
    res.append(num)
print(res) # 输出 [11, 10]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 14:54:05