将两个列表汇总在一起

时间:2013-10-22 06:03:04

标签: python list sum

观察到[1, 2] + [3, 4]产生了[1, 2, 3, 4],我推断sum([[1, 2], [3, 4]])应该这样做,但我得到了这个错误:

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

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

3 个答案:

答案 0 :(得分:6)

  

start 默认为0。

source

sum(..., [])

答案 1 :(得分:0)

sum将执行以下操作:

  1. 初始化result = 0
  2. 输入列表中的每个elementresult += element
  3. return result
  4. 所以第二步会产生这样的错误。您尝试result += element,其中result = 0element = [1, 2]。这应该会产生TypeError。

答案 2 :(得分:-1)

Sume就是这样的

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

正如您在sum函数的文档中所看到的,sum通过将每个新元素添加到先前保持的值来工作。在这种情况下,你试图添加[3,4] + 1,这将导致错误,因为添加列表和int没有意义。