观察到[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
,但为什么这不起作用?
sum
将执行以下操作:
result = 0
element
输入列表中的每个:result += element
result
所以第二步会产生这样的错误。你想做什么result += element
,在哪里result = 0
和element = [1, 2]
。这应该会产生 TypeError。
苏梅像这样工作
sum([[1,2], [3,4]])
正如您在 sum function 的文档中看到的那样, sum 通过将每个新元素添加到先前保存的值来工作。在这种情况下,您尝试添加 [3,4] + 1 这将导致错误,因为添加 list 和 int 没有意义。