如何使用joblib.Parallel()来并行化一个带有 "continue "的循环?

问题描述 投票:1回答:1

比方说,我有一个循环,只有当某些条件被满足时才会 "输出"。

output = []
for item in some_list:
    if condition(item):
        res = do_something(item)
        output.append(res)

由于内存的限制,我不能填满 output 列表 None-s,所以我无法写出.s。

joblib.Parallel(n_jobs=n)(joblib.delayed(do_something)(item) for item in some_list)

有没有一种快速合理的方法,可以让 Parallel 不包括多余的 None-s?

EDIT

我忘了说明,既检查 condition(item) 和实际 do_something(item) 的时间太长,所以我想把这两个循环并行化。

python parallel-processing multiprocessing joblib
1个回答
0
投票

Q : "是否有一种快速合理的方法,可以使下列机构产生的产出清单: Parallel 不包括多余的 None-s?"

是的。

定义 for item-发电机部分视需要而定。

joblib.Parallel( n_jobs = n )( joblib.delayed( do_something )( item )
                                                           for item in some_list
                                                 if condition( item )
                               )
© www.soinside.com 2019 - 2024. All rights reserved.