是否可以在 python 中异步运行嵌套循环?

问题描述 投票:0回答:0

我试图运行一个余弦相似度代码来检查我的字符串列表中的两个字符串是否相似,以使列表只包含唯一的字符串以删除相似的句子。我拿了一个字符串并将其与列表中的每个其他字符串进行比较。我实施的方法是 O(n^2) 并且至少需要一个月才能完成我所有的字符串。我在想是否可以并行运行嵌套循环任务以减少使用 asyncio 的时间。

所以我尝试了一些与此非常相似的东西,但它不能异步工作。请指导我一点。谢谢你。

async def dumb_add(i,j):
    print("adding",i,"+",j)
    await asyncio.sleep(random.randint(0,3))
    print(i,"+",j,"=",(i+j))

async def main():
    for i in range(0,2):
        for j in range(0,2):
            await dumb_add(i,j)
    print('main done')

asyncio.create_task(main())

结果:

adding 0 + 0
0 + 0 = 0
adding 0 + 1
0 + 1 = 1
adding 1 + 0
1 + 0 = 1
adding 1 + 1
1 + 1 = 2
main done

python pandas multithreading asynchronous async-await
© www.soinside.com 2019 - 2024. All rights reserved.