我试图弄清楚我的字符串是否与列表中的任何项目列表相似。我的错误是,它只迭代到我的列表大小,而不是单个字符串的长度。有什么建议吗
my_string = "aplpe"
my_list=["orange", "apple", "grape"]
correctamount=0
if(my_string in my_list):
print("Passed")
else:
if any(my_string in s for s in my_list):
for i in range(len(my_string) + 1):
if my_string[i] == my_list[i][i]:
correctamount += 1
print(correctamount)
else:
correctamount == 0
print(correctamount)
if((correctamount/len(my_list) + 1 ) > .75):
print("Passed")
else:
print("Failure")
为了找到字符串之间的相似性,有很多种算法,Python有一个名为textdistance的库,其中包含所有算法
我将根据您的要求使用Jaccard距离。您需要根据需要决定算法
每个字符串的相似性百分比
获取最相似字符串的索引
输出
如果您希望将textdistance与其他库的基准测试用于大型数据集,则会给出here
我相信应该编写一个干净的代码并分离出各个功能,这样代码就易于阅读和贡献
我定义了一个函数
is_similar
来检查similarity_percentage
请查看以下实现:
输出:
案例2:
如果
然后,输出:
案例3:
如果
然后,输出:
为此,有一个名为
jellyfish
的库-https://github.com/jamesturk/jellyfish该库有不同的字符串匹配算法
相关问题 更多 >
编程相关推荐