我最近在python中发现了一个有趣的特性。
如果您键入:
y=[[1,2],[3,4]]
sum(y,[])输出为:[1, 2, 3, 4]
有人知道为什么一系列列表与一个空列表的总和给出了y的平面化版本(即:y的所有子列表都是一个列表)吗?
我原本希望输出是一个串联:[1,2],[3,4],[]
谢谢
发布于 2019-06-14 02:13:00
sum遍历可迭代对象并添加每个元素。碰巧的是,对于列表,加法被定义为串联。通过将第二个参数(start)设置为[],该函数从一个列表开始,并不断向列表中添加元素。有效地:
sum([[1, 2], [3, 4]], []) == [] + [1, 2] + [3, 4]https://stackoverflow.com/questions/56586296
复制相似问题