我想在几个变量的函数上创建一个池,其中一个变量是固定的。如果我使用的是基本地图,我会有这样的东西:
def test_map(a,b):
return a+b
serial_map = map(lambda x: test_map(2,x), [1, 1, 3])
但这对池地图不起作用:
from multiprocessing import Pool
p = Pool(4)
p.map(lambda x: test_map(2,x), [1, 1, 3])
我知道这会导致酸洗错误。我的观点是,如果可能的话,我想要一个变通办法。我知道对于常规映射来说,处理这个问题的惯用方法是使用lambdas,我想知道处理该问题的pool.map方法。
在这种情况下,使用starmap函数更有意义。
from multiprocessing import Pool
def test_map(a,b):
return a+b
p = Pool(4)
p.starmap(test_map, [(2,x) for x in [1, 1, 3]])