Skip to main content
 首页 » 编程设计

python之在列表列表中使用 sum() 时出错

2025年05月04日24落叶

我有一个 list_of_lists,我想创建一个包含所有内部列表的所有元素的列表。我不明白为什么不能使用 sum 来实现这一点。

list_of_lists = [['element 1','element 2'],['element 1']] 
print(sum(list_of_lists)) 
>> TypeError: unsupported operand type(s) for +: 'int' and 'list' 

如果我使用 reduce 它工作正常:

from functools import reduce 
print(reduce(lambda x,y: x+y, list_of_lists)) 
>> ['element 1', 'element 2', 'element 1'] 

请您参考如下方法:

因为 sum 使用默认值 0 进行初始化。改为使用空列表进行初始化:

print(sum(list_of_lists, [])) 
# ['element 1', 'element 2', 'element 1'] 

但是,使用sum 来展平列表并不是一个好主意(可怕的 性能),您可以使用嵌套理解或itertools.chain.from_iterable这是为此创建的。