为什么python中的列表的“总和”会使其扁平化?

EML*_*EML 3 python list python-3.x

我最近在python中发现了一个有趣的功能

如果输入:

y=[[1,2],[3,4]]
sum(y,[])
Run Code Online (Sandbox Code Playgroud)

输出为: [1, 2, 3, 4]

有谁知道为什么带有空列表的一系列列表的总和给出y的扁平化版本(即:y的所有子列表都作为一个列表)?

我本来希望输出是串联的: [1,2],[3,4],[]

谢谢

Tre*_*edJ 5

sum通过迭代执行迭代,并添加每个元素。碰巧的是,使用列表将加法定义为串联。通过将第二个参数(start)设置为[],该函数从一个列表开始,并继续向其添加元素。有效:

sum([[1, 2], [3, 4]], []) == [] + [1, 2] + [3, 4]
Run Code Online (Sandbox Code Playgroud)