python - 使用列表中的 kwargs 多次调用函数 [python]
问题描述
我需要定义这个函数,还是它已经存在于 python 中?我想这与map有关,但我想传入一个dicts列表,在调用函数时得到**扩展,而不是直接传入,并且我的搜索结果被一般kwargs的东西劫持。
def doublestarmap(fn, kwargs_list):
'''run function fn for each kwargs in kwargs_list'''
return [fn(**kwargs) for kwargs in kwargs_list]
具体来说,我希望这是一个函数,以便我可以在单独的线程中调用它。
def foo(a, b):
print(a, b)
kwargs_list = [
dict(a=1, b=2),
dict(a=10, b=20),
dict(a=100, b=200),
]
doublestarmap(foo, kwargs_list) # sanity check
thread = threading.Thread(
target=doublestarmap,
kwargs=dict(fn=foo, kwargs_list=kwargs_list),
)
thread.start()
关于在线程中运行的最后一点是关键。我希望能够发送一个 kwargs 列表和一个函数到一个线程,并且它使用每个 kwargs dict 一个接一个地运行该函数。我上面的代码工作正常。我只是不想用我自己的doublestarmap
函数重新发明轮子,如果有一种更 Pythonic 的方式来做到这一点。
解决方案
推荐阅读
- .net - NuGet 包管理器 - 找不到项目“默认”。- 视觉工作室 2017
- sesam - Sesam DTL - 痛苦地创建复杂的 json 输出
- java - Whatsapp 和即时消息应用程序如何在 Oreo 中没有持久通知的情况下在后台工作?
- c# - 使用 Entity Framework Core 访问 MySql
- java - 如何处理包含 android 活动中两种不同语言的编辑文本的布局的软键盘切换语言?
- python - 如何正确存储 BeautifulSoup 对象以供以后使用
- javascript - 单击 div Angular 时打开新选项卡
- c# - 在 Visual Studio 中“静默”中断执行(无需查看源代码)
- rabbitmq - 无法使用 add_user 命令将用户添加到 RabbitMQ
- ruby-on-rails - after_destroy 回调声明对象仍然存在