递归地将数字列表转换为数字

时间:2015-10-03 12:12:13

标签: python python-3.x recursion

我用for循环做了。

def base2dec(nums, base):
    adding = []
    power = -1
    for num in nums[::-1]:
        power+=1
        adding.append(num*pow(base, power))
    return sum(adding)

但是教程练习要求我使用递归来完成它。我不太明白。函数base2dec(nums,base)获取给定nums中的整数列表(base)并返回相应的基数10。你们能告诉我如何通过递归来做到这一点吗?我真的不知道怎么做。

1 个答案:

答案 0 :(得分:1)

这里的关键点是将列表拆分为一个元素和其余元素,并以递归方式传递其余元素:

def base2dec(nums, base):
    if len(nums) == 1:
        return nums[0]
    else:
        return nums[-1] + base * base2dec(nums[:-1], base)