如何使用sum(iterable,[])展平嵌套列表?[重复]


问题内容

这个问题已经在这里有了答案

内置函数sum对sum(list,[])有什么作用? (3个答案)

2年前关闭。

我正在使用python 3.6。我遇到了以下使用以下方法来平铺嵌套列表的方法sum

a = [[1, 2], [3, 4], [5, 6]]

sum(a,[])

返回:

[1,2,3,4,5,6]

这到底是怎么回事?Sum需要一个可迭代的对象(在这种情况下为列表)和一个起始值。我不明白python读取什么来弄平列表。


问题答案:

这仅仅是Python解释列表添加的结果。来自文档

sum(iterable[, start])

总和从左到右依次迭代一个项目,并返回总计。

由于sum首先将iterable的第一个元素添加到start参数中,因此您具有:

[] + [1, 2] = [1, 2]

然后,它继续从迭代中添加项目:

[1, 2] + [3, 4] = [1, 2, 3, 4]
[1, 2, 3, 4] + [5, 6] = [1, 2, 3, 4, 5, 6]