python - 如何将关键字参数传递给 concurrent.futures 映射调用调用的函数

标签 python dictionary concurrency concurrent.futures

我有以下代码:

from concurrent.futures import ThreadPoolExecutor

def spam(url, hello=None, params=None):
    print(url, hello, params)

urls = [1, 2, 3, 4, 5]
params = [(6, 7), 7, ('a', 1), 9, 'ab']
with ThreadPoolExecutor(5) as executor:
    res = executor.map(spam, urls, params)

这预期打印:

1 (6, 7) None
2 7 None
3 ('a', 1) None
4 9 None
5 ab None

有没有办法告诉 map 函数调用带有特定关键字参数的 spam?在此示例中,我希望将值参数传递给 hello 参数而不是下一行(在本例中为 params)。

我试图解决的实际用例是将 params= 值传递给 request.get 调用以获取重复 URL。

最佳答案

您可以在执行 map 时将 spam 包装在 lambda 中

res = executor.map(lambda x,y:spam(x,params=y), urls, params)

关于python - 如何将关键字参数传递给 concurrent.futures 映射调用调用的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42002532/

相关文章:

python - 如何将值插入到列表中已有的列表中?

python - pandas groupby 并转换为 json 列表

python - 展平嵌套的 Python 字典、压缩键并使用字典重复出现在子列表中

list - Ansible:如何将默认值应用于列表的每个复杂参数

python - 如何在 Bluemix 中安装/导入依赖项并执行 Python 文件

Python Confluence-Kafka SSL 配置

python - 从完整地址获取邮政编码

Java:具有长生命周期消费者的并发队列和短生命周期生产者的处理保证

Java同步/锁定

java - 如何将第二个锁与 Collections.synchronizedMap 关联