映射一个池函数,使一个变量保持固定



我想在几个变量的函数上创建一个池,其中一个变量是固定的。如果我使用的是基本地图,我会有这样的东西:

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]])

相关内容

  • 没有找到相关文章

最新更新