Я уверен, что должен быть более Pythonic способ сделать это, но я не могу думать об одном: как я могу объединить двумерный список в одномерный список? Похоже на zip/map, но с более чем двумя итераторами.
Пример. У меня есть следующий список:
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-массиве иметь одинаковую длину, могут быть добавлены друг к другу и т.д. Что было бы лучшим способом сделать это?