gpt4 book ai didi

Python - 如何加速具有函数和多个返回值的嵌套 for 循环

转载 作者:行者123 更新时间:2023-12-01 06:51:16 24 4
gpt4 key购买 nike

我正在编写一个Python代码来计算两个字符串之间是否存在模糊匹配。如果存在匹配,我必须存储字符串和平均匹配值。要比较的字符串来自包含数千个条目的列表问题是代码执行时间太长。为了加快速度,我在这里查看了其他答案,但它们都没有循环中内部函数的多个返回值。在这里寻找优化的代码...

tokens=['abc','bcd','abe','efg','opq']
valid_list=['acb','abc','abf','bcd','rts','xyz']
for i in tokens:
for j in valid_list:
token,valid_entry,avg_match=get_match(i,j)
if(token!=0):
potential_entry.append(valid_entry)
match_tokens.append(token)
ag_match.append(avg_match)

def get_match(i,j):

avg_value=(fuzz.ratio(token,chk_str)+fuzz.partial_ratio(token,chk_str)+fuzz.token_sort_ratio(token,chk_str)+fuzz.token_set_ratio(token,chk_str))/4
if(int(avg_value)>70):
return token,chk_Str,int(avg_value)
else:
return 0,0,0

最佳答案

我能看到的最明显的事情是,如果有任何显然不是有效的匹配,您可以短路模糊检查。

因此,不要在一行中全部完成,而是单独进行,并在获取其他比率之前检查它们是否低于阈值,而是优先检查您希望为此提供最清晰答案的比率。

另外,请考虑:

  • 使用对象的单个列表以避免附加到三个列表
  • 使用 token 集和有效列表来确保不进行任何重复检查
  • 不将 if 语句的 avg_value 转换为整数,这实际上并没有什么区别。
  • 添加显式 i == j 检查,以便在执行任何其他检查之前返回 100% 的比率

关于Python - 如何加速具有函数和多个返回值的嵌套 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58992332/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com