可以枚举用于递归吗?这个例子的递归是什么?

时间:2016-01-11 11:20:25

标签: python python-2.7 recursion enumeration

使用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])

1 个答案:

答案 0 :(得分:2)

enumerate()用于递归函数是没有意义的,因为enumering是迭代的,这是&#34;相反的&#34;递归。

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

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