在这种情况下,如何解决“'int'对象不可下标”的问题?

时间:2019-02-09 16:44:42

标签: python-3.x

我只是想编写递归代码,但是出现了这个错误。我的错误在哪里?

我试图识别所有变量,但是它不起作用。

def sum(arr):
    if len(arr) > 1:
        answer = int(arr.pop()[0] + sum(arr))
        return answer
    else:
        return arr[0]

print(str(sum([1, 45])))

我希望递归能够正常工作,但事实并非如此。它必须给出数组的和。

1 个答案:

答案 0 :(得分:1)

arr.pop返回并删除列表的最后一个元素。因此它返回一个int,而不是int列表。

https://docs.python.org/2/library/array.html#array.array.pop

这是我如何修复您的代码。我只是从arr.pop()中删除了[0],它修复了代码并还删除了一些不必要的强制转换

def sum(arr):
    if len(arr) > 1:
        answer = arr.pop() + sum(arr)
        return answer
    else:
        return arr[0]

print(sum([1, 45]))