+-

所以我需要在递归的整数列表中找到第二个最小的数字,但我不能为我的生活设计一个方法来做到这一点.我可以用它找到最小的数字:
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 – 使用递归查找列表中的第二个最小数字 - 乐贴网