Sum A List Of Lists To Get A Sum List Python
I'm trying to create a define a helper function that sums a list of lists to get a sum list. For example: [[1,2,3],[1,2,3],[2,3,4]] Would come out as: [4,7,10] I found this on
Solution 1:
Just put the list comprehension inside the function. (with return
)
>>> def addhours(listoflists):
... return [sum(lst) for lst in zip(*listoflists)]
...
>>> addhours([[1,2,3],[1,2,3],[2,3,4]])
[4, 7, 10]
Why your code does not work?
def addhours(listoflists):
for list in zip(*listoflists):
newsum = sum (list) # <---- This statement overwrites newsum
return newsum # returns the last sum.
You need a list to hold sums as items.
def addhours(listoflists):
result = []
for lst in zip(*listoflists):
result.append(sum(lst)) # Append to the list instead of overwriting.
return result
BTW, don't use list
as a variable name. It shadows builtin function list
.
Solution 2:
Since the function is quite small, you could also use an anonymous definition:
>>> addhours = lambda l: [sum(i) for i in zip(*l)]
>>> addhours([[1,2,3],[1,2,3],[2,3,4]])
>>> [4,7,10]
Post a Comment for "Sum A List Of Lists To Get A Sum List Python"