我知道在Python中,map相当于多处理模块pool.map
的并行处理类。 在 Python 的并行编程中是否有filter
等价物?
Python 具有大多数必要的面向函数的编程范式。例如map
,您可以在此处找到filter
和reduce
话虽如此,多处理不支持filter
因为默认情况下 lambda 不可腌制。
但是您始终可以使用上述函数实现自己的函数,或者使用迭代器、生成器或列表理解以适合您的方式复制它们。
从sagemath中获取的一个例子是:
def pool_filter(pool, func, candidates):
return [c for c, keep in zip(candidates, pool.map(func, candidates)) if keep]
但这进一步取决于您的实现。