我遇到了一个场景,我需要为 python 中的值列表并行运行函数。我从中学到了 executor.mapconcurrent.futures
会做这项工作。我能够使用以下语法并行化该函数executor.map(func,[values])
.
但现在,我遇到了相同的场景(即函数必须并行运行),但函数签名与之前的不同,如下所示。
def func(search_id,**kwargs):
# somecode
return list
container = []
with concurrent.futures.ProcessPoolExecutor() as executor:
container.extend(executor.map(func, (searchid,sitesearch=site),[list of sites]))
我不知道如何实现上述目标。有人可以指导我吗?
如果你有一个可迭代的sites
你想要的map
你想通过同样的search_term
and pages
每个调用的参数。您可以使用zip
创建一个返回 3 个元素的元组的迭代器,其中第一个是站点列表,第二个和第三个是重复使用的其他参数itertools.repeat
def func(site, search_term, pages):
...
from functools import partial
from itertools import repeat
executor.map(func, zip(sites, repeat(search_term), repeat(pages)))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)