假设我有一个循环,只有在满足某些条件时才"输出":
output = []
for item in some_list:
if condition(item):
res = do_something(item)
output.append(res)
对于内存限制,我无法用None
-s 填充output
列表,所以我不能写:
joblib.Parallel(n_jobs=n)(joblib.delayed(do_something)(item) for item in some_list)
有没有一种快速合理的方法可以使Parallel
生成的输出列表不包含冗余None
-s?
编辑
我忘了澄清检查condition(item)
和实际do_something(item)
总体上花费的时间太长,所以我试图并行化两者。
问:">有没有一种快速合理的方法使
Parallel
生成的输出列表不包含多余的None
-s?
是的。
根据需要定义for item
生成器部分:
joblib.Parallel( n_jobs = n )( joblib.delayed( do_something )( item )
for item in some_list
if condition( item )
)