+-
python 3.2 – 使用递归查找列表中的第二个最小数字
所以我需要在递归的整数列表中找到第二个最小的数字,但我不能为我的生活设计一个方法来做到这一点.我可以用它找到最小的数字:

def smallest(int_list):

    if(len(int_list) == 1):
        return int_list[0]
    else:
        a = smallest(int_list[1:])
        b = int_list[0]

        if(a <= b):
            return a
        else:
            return b

谁能指出我正确的方向?

最佳答案
这是一个不使用min()或sorted()的简短实现.当列表中存在重复值时,它也可以工作.

def ss(e):
    if len(e)==2 and e[0]<=e[1]:return e[1]
    return ss(e[:-1]) if e[0]<=e[-1]>=e[1] else ss([e[-1]]+e[:-1])

print("The selected value was:", ss([5, 4, 3, 2, 1]))
点击查看更多相关文章

转载注明原文:python 3.2 – 使用递归查找列表中的第二个最小数字 - 乐贴网