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))。



