Сложение матриц с помощью функции sum и zip
Подскажите пожалуйста где я ошибся, не могу въехать.
a = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
b = [[9, 8, 7],
[6, 5, 4],
[3, 2, 1]]
x = [map(sum, zip(*i)) for i in zip(a, b)]
print(x)
Должно быть [[10,10,10],[10,10,10],[10,10,10]]
А получается [<map object at 0x0232FE08>, <map object at 0x0232FE38>, <map object at 0x0232FF28>]
Меня интересует именно этот подход, так как с использованием вложенного цикла for:
a = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
b = [[9, 8, 7],
[6, 5, 4],
[3, 2, 1]]
x = [[0, 0, 0],
[0, 0, 0],
[0, 0, 0]]
for i in range(len(a)):
for j in range(len(a[0])):
x[i][j] = a[i][j] + b[i][j]
[print(i) for i in x]
и использованием метода понимания вложенного списка я уже разобрался:
a = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
b = [[9, 8, 7],
[6, 5, 4],
[3, 2, 1]]
x = [[a[i][j] + b[i][j] for j in range(len(a[0]))] for i in range(len(a))]
[print(i) for i in x]
Источник: Stack Overflow на русском