递归地对列表中的元素求和;Python

use*_*923 -1 python recursion

我在将一段递归代码从 Java 转换为 Python 时遇到问题。该函数所做的就是对数组(或列表)中的元素求和。

public static int Summ(int [] arr, size)
{
   if(size == 0)
      return 0
   else
    return arr[size-1] + Summ(arr,size-1);

}  <-- works fine
Run Code Online (Sandbox Code Playgroud)

但是,在 Python 中,我收到此错误消息: TypeError: unsupported operand type(s) for +: 'int' and 'list'。关于如何解决这个问题有什么建议吗?谢谢!

def Sum(arr,size):
   if size == 0:
     return 0
   else:
     return arr[size-1] + Summ(arr,size-1)
Run Code Online (Sandbox Code Playgroud)

ism*_*ail 5

你可以只使用

sum(arr)
Run Code Online (Sandbox Code Playgroud)

这将返回列表中值的总和。

  • 这是人们使用 python 而不是 java 的原因之一。 (2认同)
  • @Woot4Moo - 递归数组求和非常适合这个站点......因为它可能会导致堆栈溢出。 (2认同)