Умножение двух списков с вложенными списками

Есть два списка

а = [[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]]
​
→ Ссылка