PYTHON递归列表中的数字之和

PYTHON递归列表中的数字之和,python,python-3.x,recursion,Python,Python 3.x,Recursion,如何添加一个额外的argumentp来停止索引p中的递归? 例如,在列表[1,2,3,4,5]中,我想在索引[3]前求和?如果需要递归执行此操作,请创建一个带有参数的帮助器,以跟踪您所在的索引: def recSum(list): if len(list)==0: return 0 else: return list[0] + recSum(list[1:]) getSum([1,2,3,4,5]) 如果您想要一个能够在所有生成器上而不仅仅

如何添加一个额外的argumentp来停止索引p中的递归?
例如,在列表[1,2,3,4,5]中,我想在索引[3]前求和?

如果需要递归执行此操作,请创建一个带有参数的帮助器,以跟踪您所在的索引:

def recSum(list):
    if len(list)==0:
         return 0
    else:
         return list[0] + recSum(list[1:])

getSum([1,2,3,4,5])

如果您想要一个能够在所有生成器上而不仅仅是阵列上运行的函数,itertools有助于:


不要调用变量列表-该名称由构建inslice it:getSum[1,2,3,4,5][:p]-使用,或者将p作为参数提供给函数,并使用助手将其切分,以执行summingdef recSumlst,n:return 0 if not n else lst lst[0]+recSumlst[1:],n-1您已经描述了至少一半的实现。尝试编码并发布该问题。如何编写此问题的解决方案超出堆栈溢出的界限进入教程区域。@coldspeed您的建议有一个问题。
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])
import itertools

def recSum(data, cutoff):
    return sum( itertools.islice(data, cutoff))