def recSum(list):
if len(list)==0:
return 0
else:
return list[0] + recSum(list[1:])
getSum([1,2,3,4,5])
如何添加一个额外的参数(p)来停止索引p中的递归? 例如具有列表[1,2,3,4,5],而我想要的总和直到index [3]?
答案 0 :(得分:0)
如果您需要递归执行此操作,请创建一个带有参数的助手,以跟踪您所处的索引:
def recSum(list, p):
recSumHelper(list, p, 0)
def recSumHelper(list, p, idx):
if len(list)==0 or idx > p:
return 0
else:
return list[0] + recSumHelper(list[1:], p, idx + 1)
getSum([1,2,3,4,5])
答案 1 :(得分:0)
如果您想要一个可以在所有生成器上而不只是数组上运行的函数,itertools
可以帮助您:
import itertools
def recSum(data, cutoff):
return sum( itertools.islice(data, cutoff))