[sum(value) for value in zip(*array)] is pretty standard.
This might help you understand it:
In [1]: array=[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
In [2]: array
Out[2]: [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
In [3]: *array
------------------------------------------------------------
File "<ipython console>", line 1
*array
^
<type 'exceptions.SyntaxError'>: invalid syntaxThe unary star is not an operator by itself. It unwraps array elements into arguments into function calls.
In [4]: zip(*array)
Out[4]: [(1, 4, 7), (2, 5, 8), (3, 6, 9)]zip() is a built-in function
In [5]: zip(*array)[0]
Out[5]: (1, 4, 7)each element for the list returned by zip is a set of numbers you want.
In [6]: sum(zip(*array)[0])
Out[6]: 12
In [7]: [sum(values) for values in zip(*array)]
Out[7]: [12, 15, 18]
本文介绍了一种Pythonic的方法,将二维列表转换为一维列表并对相同位置的元素进行求和。通过使用内置函数`zip()`配合列表推导式及`sum()`函数实现这一目标。
593

被折叠的 条评论
为什么被折叠?



