如何使用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]