多处理,池和两个列表

时间:2018-02-28 09:59:01

标签: python

>>> from multiprocessing import Pool

>>> def f(x, y):
...     return x*y

>>> p = Pool(3)

>>> p.map(f, [1,2,3], [4,5,6])

我看错了TypeError: unorderable types: list() <= int() 如何将Pool与2个列表一起使用?

2 个答案:

答案 0 :(得分:2)

问题在于map函数而不是Pool对象。对于这种情况,starmap将是一个不错的选择:

p.starmap(f, zip([1,2,3], [4,5,6]))

从python 3.3 starmap添加到Pool对象

答案 1 :(得分:0)

我真的不明白你想如何订购你的参数,但我的想法是有一个元组列表,因为你的函数需要2个参数,所以像这样:

p.map(f, [(1, 4), (2, 5), (3, 6)])

并使f取一个元组作为参数

def f(t):
    return t[0] * t[1]