如何解决有什么方法可以替换循环到多线程以快速执行时间?
为详细了解,我附上了文件链接。
列表中有数据,其语法类似于:
i = [a.b>c.d,e.f.g>h.i.j ]
l = [a.b,e.f.g ]
n = [a.b>c.d,e.f.g ]
例如列表中的每个元素都有多个由“。”分隔的子元素。和“>”
for i in range(0,len(l)):
reac={}
reag={}
t = l[i].split(">")
REAC = t[0]
Reac = REAC.split(".")
for o in range(len(Reac)):
reaco = "https://ai.chemistryinthecloud.com/smilies/" + Reac[o]
respo = requests.get(reaco)
reac[o] ={"Smile":Reac[o],"Details" :respo.json()}
if (len(t) != 1):
REAG = t[1]
Reag = REAG.split(".")
for k in range(len(Reag)):
reagk = "https://ai.chemistryinthecloud.com/smilies/" + Reag[k]
repo = requests.get(reagk)
reag[k] = {"Smile": Reag[k],"Details" :repo.json()}
res = {"Reactants": list(reac.values()),"Reagents": list(reag.values())}
boo.append(res)
else:
res = {"Reactants": list(reac.values()),"Reagents": "No reagents"}
boo.append(res)
我们已经分离了所有元素,并且对于每个元素,我们都在调用第三方API。那会浪费太多时间。
有什么方法可以减少时间并优化循环吗?
大约需要1分钟才能回复。我们希望优化到5-10秒。
解决方法
您可以启动多个请求并在完成后处理它们 ThreadPoolExecutor。 这样可能会加快速度。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。