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

如何不使用min()和pop()函数实现移除列表最小值的Python函数?

实现 remove_minimum 函数的方案

不用min()和pop()也能搞定,核心就是自己找最小值的位置,然后构建新列表跳过这个位置的元素就行,具体步骤如下:

步骤拆解

  • 先处理特殊情况:如果传入的列表是空的,直接返回空列表
  • 遍历列表,手动找出最小值以及它第一次出现的索引(如果有多个相同最小值,一般移除第一个即可)
  • 构建新列表,把原列表中除了该索引对应的元素之外的所有元素都加进去

完整代码

def remove_minimum(values):
    # 处理空列表的边界情况
    if not values:
        return []
    
    # 初始化最小值和对应的索引,从第一个元素开始
    min_val = values[0]
    min_index = 0
    
    # 遍历列表找最小值的索引
    for i in range(1, len(values)):
        if values[i] < min_val:
            min_val = values[i]
            min_index = i
    
    # 构建新列表,跳过最小值所在的索引
    new_list = []
    for i in range(len(values)):
        if i != min_index:
            new_list.append(values[i])
    
    return new_list

代码说明

  1. 边界处理:空列表直接返回空,避免后续遍历出错
  2. 找最小值索引:从第一个元素开始,逐个对比更新最小值和索引,完全替代min()的功能
  3. 构建新列表:通过遍历索引,把不等于最小值索引的元素加入新列表,全程没用到pop()(pop()会修改原列表,这里直接生成新列表更安全)

测试示例:

print(remove_minimum([3, 1, 4, 1, 5]))  # 输出 [3,4,1,5],移除了第一个出现的1
print(remove_minimum([5,4,3,2,1]))     # 输出 [5,4,3,2]
print(remove_minimum([]))              # 输出 []

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 00:33:19