0

观察到[1, 2] + [3, 4]yielded [1, 2, 3, 4],我推断sum([[1, 2], [3, 4]])应该做同样的事情,但是我得到了这个错误:

TypeError: unsupported operand type(s) for +: 'int' and 'list'

有人可以解释一下吗?我知道我可以使用itertools.chain,但为什么这不起作用?

4

3 回答 3

6

开始默认为 0。

来源

sum(..., [])
于 2013-10-22T06:07:02.950 回答
0

sum将执行以下操作:

  1. 初始化result = 0
  2. 对于element输入列表中的每个:result += element
  3. 返回result

所以第二步会产生这样的错误。你想做什么result += element,在哪里result = 0element = [1, 2]。这应该会产生 TypeError。

于 2013-10-22T06:07:04.560 回答
-1

苏梅像这样工作

    sum([[1,2], [3,4]])

正如您在 sum function 的文档中看到的那样, sum 通过将每个新元素添加到先前保存的值来工作。在这种情况下,您尝试添加 [3,4] + 1 这将导致错误,因为添加 list 和 int 没有意义。

于 2013-10-22T06:13:18.730 回答