sum
使用+
运算符将一个序列加在一起。例如sum([1,2,3]) == 6
。第二个参数是一个可选的起始值,默认为0 sum([1,2,3], 10) == 16
。
在您的示例中,它确实[] + [1,2] + [3,4]
将+
2个列表连接在一起。因此结果是[1,2,3,4]
空列表是第二个参数,sum
因为如上所述,默认值是将sum
其添加为0(即0 + [1,2] + [3,4]
),这将导致 不支持+的操作数类型:“ int”和“ list”
这是帮助的相关部分sum
:
sum(sequence [,start])-> value
返回一个数字序列(非字符串)的总和加上参数“ start”的值(默认为0)。
如wallacoloo所言,这 拉平任何多维列表的通用解决方案。由于上述行为,它仅适用于一维列表。
有关扁平化1级嵌套的方法,请参阅itertools页面上的以下食谱:
def flatten(listOfLists):
"Flatten one level of nesting"
return chain.from_iterable(listOfLists)
请注意,配方返回一个itertools.chain
对象(可迭代),而另一个问题的答案返回一个generator
对象,因此,list
如果您要完整列表而不是对其进行遍历,则需要在调用中包装这两个对象。例如list(flatten(my_list_of_lists))
。