带有for循环的示例,用于查找最小的数字及其位置:

def smallest(list):
     smallest = 1000000
     smallestposition=-1
     for pos,value in enumerate(list):
         if(value < smallest):
             smallest = value
             smallestposition = pos
     return smallest,smallestposition
print smallest([23,444,222,111,56,7,45])

最佳答案

没有必要在递归函数中使用enumerate(),因为枚举是迭代的,这是递归的“相反”。

此函数的递归版本可以是:

def smallest(lst, idx=0):
    s = (lst[idx], idx)
    if idx == len(lst) - 1:
        return s
    return min(s, smallest(lst, idx + 1))

关于python - 可以在递归中使用枚举吗?此示例的递归是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34720228/

10-12 21:43