如何使用递归来总结数字列表直到某个索引

How to use recursion to sum up a list of numbers up until a certain index

我必须编写一段代码,利用递归对列表中的数字求和,直到索引等于预先确定的整数值。即

  list = [1,4,8,9]
    int = 2
    sum = 1 + 4 (index 0 and 1)

下面是我到目前为止的代码,但我在第一个 if 语句的逻辑上苦苦挣扎,因此它不起作用。我收到错误 'int' object has no attribute 'index' 任何帮助将不胜感激(PS 非常新的编码 - 如果我的代码不是最好的,很抱歉)!

# Sum Recursion

def Arecursion(Alist,index):

    if index > 0:       # if the index point in the list matches the integer return the sum
        return Alist[index] + Arecursion(Alist,index-1)
    else:
        return 0

list_test = [1,4,6,7,10]
int_test = 2
print(Arecursion(list_test,int_test))

你正在让它变得比你需要的更复杂。您只需要一个基本情况——当前索引太大,递归——当前索引处的值加上其余值:

def sum_rec(l,max_index, i=0):
    if i >= max_index or i >= len(l):          # base case
        return 0
    return l[i] + sum_rec(l, max_index, i+1)   # recursion


sum_rec([1, 2, 3, 4], 0)
# 0
sum_rec([1, 2, 3, 4], 1)
# 1
sum_rec([1, 2, 3, 4], 2)
# 3
sum_rec([1, 2, 3, 4], 3)
#6