如何在 Python 中使用并行处理过滤器?



我知道在Python中,map相当于多处理模块pool.map的并行处理类。 在 Python 的并行编程中是否有filter等价物?

Python 具有大多数必要的面向函数的编程范式。例如map,您可以在此处找到filterreduce

话虽如此,多处理不支持filter因为默认情况下 lambda 不可腌制。
但是您始终可以使用上述函数实现自己的函数,或者使用迭代器、生成器或列表理解以适合您的方式复制它们。

从sagemath中获取的一个例子是:

def pool_filter(pool, func, candidates):
return [c for c, keep in zip(candidates, pool.map(func, candidates)) if keep]

但这进一步取决于您的实现。

最新更新