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),
)
Я видел столько ответов здесь, но ни один из них не является столь же прямым как использующий лямбда-выражения:
нечто (x, y): передача
хочет звонить выше метода 10 раз с тем же значением т.е. xVal и yVal? с concurrent.futures. ThreadPoolExecutor () как исполнитель:
for _ in executor.map( lambda _: foo(xVal, yVal), range(0, 10)):
pass