如何将不可迭代的wargs包含在map
的concurrent.futures
函数中?例如,在下面的代码中,对于所有c
函数调用,如何将single
称为False?也就是说,single(iterable_a[i], iterable_b[i], c=False)
其中i
是0到3之间的一个整数。
import concurrent.futures
def single(a, b, c=True):
return (a, b, c)
if __name__ == '__main__':
iterable_a = range(4)
iterable_b = range(4,8)
with concurrent.futures.ProcessPoolExecutor() as executor:
results = executor.map(single, iterable_a, iterable_b)
最佳答案
您可以为此使用functools.partial
:
from functools import partial
single2 = partial(single,c=False)
将生成一个函数
single2
,其中c
设置为False
。因此,您可以使用:from functools import partial
results = executor.map(partial(single,c=False), iterable_a, iterable_b)
因此,您的
map
调用从partial(single,c=False)
生成的函数,而您map
使用该函数。关于python - 如何多进程功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42649940/