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

不使用max函数查找列表最大值,空列表需返回None的问题

解决空列表返回None且不调用max函数的最大值查找问题

修复原代码的方案

你的代码核心问题是空列表时,排序后的列表仍为空,取[-1]会触发索引越界错误。只需要先判断输入列表是否为空,为空直接返回None即可。同时可以简化原代码里的冗余逻辑(没必要重新复制列表):

SURVEY_RESULTS = [25,30,100,88,56]

def maximum(x):
    if not x:  # 检查列表是否为空
        return None
    sorted_list = sorted(x)  # 生成排序后的新列表,不修改原输入
    return sorted_list[-1]
        
print(maximum(SURVEY_RESULTS))  # 输出 100
print(maximum([]))  # 输出 None

更高效的遍历比较方案

排序的时间复杂度是O(nlogn),如果处理大数据量,直接遍历逐个比较的效率更高(时间复杂度O(n)),实现如下:

def maximum(x):
    if not x:
        return None
    max_val = x[0]
    for num in x[1:]:
        if num > max_val:
            max_val = num
    return max_val

这个方法的逻辑是:先判断空列表返回None,然后把第一个元素作为初始最大值,之后遍历列表剩余元素,每次遇到更大的值就更新最大值,最后返回结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 22:35:23