嗨,我想知道如何在Python中异步调用for循环内的函数,以使for循环更快地执行。 在这种情况下,bar()是一个耗时较长的函数,这就是为什么我希望对它的调用是非阻塞的原因。
以下是我想要重构的内容:
def bar(item):
//manipulate item
return newItem
newItems = []
for item in items:
newItem = foo(item)
newItems.append[newItem]
以下是我尝试的内容:
async def bar(item):
//manipulate item
return newItem
async def foo():
newItems = [bar(item) for item in items]
newItems = await asyncio.gather(*newItems)
return newItems
newItems = asyncio.run(foo())
好像不起作用,因为每次函数调用仍然会等待前一个函数完成才开始。 我希望能提供一些有关我可能做错了什么的提示。 非常感谢您提供的任何和所有帮助!