Умножение двух списков с вложенными списками
Есть два списка
а = [[1,2,3,4],[5,6,7,8]]
и
b = [[[1],[1,2],[2],[1,2]],[[1],[],[1,2,3],[1,2,3,4]]]
Необходимо умножить два списка, получив результат в таком виде
[[[1],[2,4],[6],[4,8]],[[5],[6],[7,14,21],[8,16,24,32]]]
Ответы (1 шт):
Автор решения: strawdog
→ Ссылка
Я так понимаю, речь идёт от адамаровом произведении матриц? Не совсем понятно, как у вас работает умножение на пустой список. Пока могу предложить такое решение:
import numpy as np
a = [[1,2,3,4],[5,6,7,8]]
b = [[[1],[1,2],[2],[1,2]],[[1],[],[1,2,3],[1,2,3,4]]]
a = np.array(a)
b = np.array([np.array(x) for y in b for x in y])
b = b.reshape(a.shape)
res = [x.tolist() for y in np.multiply(a, b) for x in y]
print(res)
Получим res:
[[1], [2, 4], [6], [4, 8], [5], [], [7, 14, 21], [8, 16, 24, 32]]