I'm pretty sure there should be a more Pythonic way of doing this - but I can't think of one: How can I merge a two-dimensional list into a one-dimensional list? Sort of like zip/map but with more than two iterators.
Example - I have the following list:
array=[[1,2,3],[4,5,6],[7,8,9]]
I want to have
[sum(value) for value in zip(*array)] is pretty standard.
This might help you understand it:
The unary star is not an operator by itself. It unwraps array elements into arguments into function calls.
zip() is a built-in function
each element for the list returned by zip is a set of numbers you want.result=[12,15,18]# [1+4+7, 2+5+8, 3+6+9]use:[sum(a)forainzip(*array)]In[1]:array=[[1,2,3],[4,5,6],[7,8,9]]In[2]:arrayOut[2]:[[1,2,3],[4,5,6],[7,8,9]]In[3]:*array------------------------------------------------------------File"",line1*array^:invalid syntaxIn[4]:zip(*array)Out[4]:[(1,4,7),(2,5,8),(3,6,9)]In[5]:zip(*array)[0]Out[5]:(1,4,7)In[6]:sum(zip(*array)[0])Out[6]:12In[7]:[sum(values)forvaluesinzip(*array)]Out[7]:[12,15,18]