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

如何将寻找列表最大次大数并计算的循环代码转为函数?

解决思路

1. 封装核心逻辑为函数

把原有代码的核心逻辑(初始化极值变量、循环遍历列表、计算和与差)封装到一个可复用的函数中,让函数接收数字列表作为入参,最终返回计算结果:

def calculate_largest_pair(numbers):
    # 初始化最大数和第二大数为极小值,确保能覆盖列表中的负数场景
    largest_integer = -1e10
    second_largest_integer = -1e11
    
    for item in numbers:
        if item > largest_integer:
            second_largest_integer = largest_integer
            largest_integer = item
        elif item > second_largest_integer:
            second_largest_integer = item
    
    add = int(largest_integer + second_largest_integer)
    minus = int(largest_integer - second_largest_integer)
    return [add, minus]

2. 调用测试函数

定义好函数后,直接传入目标列表即可得到结果:

# 测试示例
numbers = [1,2,3,4,5]
print(calculate_largest_pair(numbers))  # 输出 [9, 1]

3. 优化健壮性(可选)

原有代码默认输入列表至少包含2个元素,若要适配更多场景,可以添加参数校验:

def calculate_largest_pair(numbers):
    if len(numbers) < 2:
        raise ValueError("输入列表必须包含至少2个数字")
    
    largest_integer = -1e10
    second_largest_integer = -1e11
    
    for item in numbers:
        if item > largest_integer:
            second_largest_integer = largest_integer
            largest_integer = item
        elif item > second_largest_integer:
            second_largest_integer = item
    
    add = int(largest_integer + second_largest_integer)
    minus = int(largest_integer - second_largest_integer)
    return [add, minus]

内容的提问来源于stack exchange,提问作者Ra'ees Bello

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 03:30:47