Как распараллелить умножение 2 элементов во вложенном списке. ie если мой список:
lst = [[1, 1], [1, 2], [1, 3], [2, 1], [2, 2], [2, 3], [3, 1], [3, 2], [3, 3]]
Вывод, который я хочу получить:
[1, 2, 3, 2, 4, 6, 3, 6, 9]
, где 1 * 1 = 1, 1 * 2 = 2, 1 * 3 = 3, 2 * 1 = 2 и т. Д.
У меня есть следующий код:
from itertools import product
from joblib import Parallel, delayed
lst = (list(a) for a in product([1, 2, 3], repeat=2))
results = Parallel(n_jobs=-1)(delayed(x*y for x, y in lst))
results
Но этот код выдает мне ошибку:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-60-68b5134d22bd> in <module>
----> 1 results = Parallel(n_jobs=-1)(delayed(x*y for x, y in lst))
2 results
~\Anaconda3\lib\site-packages\joblib\parallel.py in __call__(self, iterable)
964 if hasattr(self._backend, 'start_call'):
965 self._backend.start_call()
--> 966 iterator = iter(iterable)
967 pre_dispatch = self.pre_dispatch
968
TypeError: 'function' object is not iterable
1) Где я ошибся?
2) Как это исправить?