これを行うためのより Pythonic な方法があるはずだと確信していますが、思いつきません。2 次元のリストを 1 次元のリストにマージするにはどうすればよいですか? zip/map に似ていますが、2 つ以上のイテレータがあります。
例 - 次のリストがあります。
array = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
したい
result = [12, 15, 18] # [1+4+7, 2+5+8, 3+6+9]
これまでのところ、私が思いついたのは次のとおりです。
def add_list(array):
number_items = len(array[0])
result = [0] * number_items
for index in range(number_items):
for line in array:
result[index] += line[index]
return result
しかし、それは私には非常にエレガント/Pythonicに見えません。2D配列のすべての「線」が同じ長さであるかどうかをチェックしないことを除いて、互いに追加できるなど.それを行うより良い方法は何ですか?