📜  Python程序在列表中查找第二大数字(1)

📅  最后修改于: 2023-12-03 15:04:40.891000             🧑  作者: Mango

Python程序在列表中查找第二大数字

有时候我们需要在一个列表中找到第二大的数字,下面是一段Python程序实现这个功能。

代码实现
def find_second_largest(numbers):
    max_num = float('-inf')
    second_max = float('-inf')
    
    for num in numbers:
        if num > max_num:
            second_max = max_num
            max_num = num
        elif num > second_max:
            second_max = num 
    
    return second_max

numbers = [1, 2, 3, 4, 5, 6, 7, 8]
second_largest = find_second_largest(numbers)
print('第二大数字是:', second_largest)

这段代码先定义了一个函数 find_second_largest,输入一个数字列表 numbers ,输出列表中的第二大数字。具体过程为:使用两个变量 max_numsecond_max 分别存储最大数字和第二大数字。对于列表中每一个数字,判断是否比 max_num 大,如果大于则将 second_max 的值更新为 max_num,将 max_num 的值更新为当前数字;如果不比 max_num 大但比 second_max 大,则将 second_max 更新为当前数字。

接着定义了一个数字列表 numbers,然后调用函数 find_second_largest 并将结果赋值给 second_largest,最后打印出来。

运行结果

运行上述代码,输出结果如下:

第二大数字是: 7

这表明在数字列表 [1, 2, 3, 4, 5, 6, 7, 8] 中,第二大的数字是 7

这段代码简洁明了,但要注意的是,在列表中有相同数字(即有两个或以上的数字相等)时,这段代码仅仅只能找到第二大的不同数字,因此可能需要针对具体应用场景进行调整。