concurrent.futures.Executor.map
принимает переменное число итерируемых, из которой функция, заданная называется. Как мне это назвать, если у меня есть генератор, который производит кортежи, которые обычно распаковываются на месте?
Следующее не работает, потому что каждый из сгенерированных кортежей задан как отдельный аргумент для map:
args = ((a, b) for (a, b) in c)
for result in executor.map(f, *args):
pass
Без генератора желаемые аргументы для отображения могут выглядеть так:
executor.map(
f,
(i[0] for i in args),
(i[1] for i in args),
...,
(i[N] for i in args),
)