Skip to main content
 首页 » 编程设计

python之对列表列表求和以获得求和列表 Python

2025年05月04日13飞鱼

我正在尝试创建一个定义辅助函数,该函数对列表列表求和以获得总列表。

例如:

[[1,2,3],[1,2,3],[2,3,4]] 

结果会是:

[4,7,10] 

我在另一篇文章中发现了这个:

[sum(i) for i in zip(*listoflists)] 

我需要将其转换为已定义的函数。这是我目前所拥有的,但没有用。

def addhours(listoflists): 
    for list in zip(*listoflists): 
        newsum = sum (list) 
return newsum 

请您参考如下方法:

只需将列表理解放在函数中即可。 (使用返回)

>>> def addhours(listoflists): 
...     return [sum(lst) for lst in zip(*listoflists)] 
... 
>>> addhours([[1,2,3],[1,2,3],[2,3,4]]) 
[4, 7, 10] 

为什么您的代码不起作用?

def addhours(listoflists): 
    for list in zip(*listoflists): 
        newsum = sum (list)  # <---- This statement overwrites newsum 
    return newsum # returns the last sum. 

您需要一个列表来将总和作为项目保存。

def addhours(listoflists): 
    result = [] 
    for lst in zip(*listoflists): 
        result.append(sum(lst)) # Append to the list instead of overwriting. 
    return result 

顺便说一句,不要使用 list 作为变量名。它隐藏了内置函数 list .