Python 比较两个具有相似字母的字符串
我想知道如何通过Python中的函数比较两个不同的字符串。更具体地说,两个不同字符串的相似程度,以及它们的相似性百分比(出现在两个字符串中的字母)。提前感谢。您可以查看各种方法来比较字符串并获得差异。看起来像Python 比较两个具有相似字母的字符串,python,string,function,Python,String,Function,我想知道如何通过Python中的函数比较两个不同的字符串。更具体地说,两个不同字符串的相似程度,以及它们的相似性百分比(出现在两个字符串中的字母)。提前感谢。您可以查看各种方法来比较字符串并获得差异。看起来像difflib.different.compare(string1,string2)将为您提供一个生成行的迭代器。前缀为-的行在一个字符串中,前缀为空的行在两个字符串中,前缀为+的行在另一个字符串中。字符串相似性是一个指标,取决于您测量的内容。您是否正在尝试将键入错误的单词与词典中的目标单词
difflib.different.compare(string1,string2)
将为您提供一个生成行的迭代器。前缀为-
的行在一个字符串中,前缀为空的行在两个字符串中,前缀为+
的行在另一个字符串中。字符串相似性是一个指标,取决于您测量的内容。您是否正在尝试将键入错误的单词与词典中的目标单词进行匹配?比较DNA或蛋白质序列?尝试基于与搜索查询的相似性进行文档检索?进行模糊名称匹配?对于这些任务中的每一项,可能需要使用不同的算法。如果你真的要问一个完全一般性的问题,你可以从阅读Levenshtein距离开始。def pctSame(s1,s2):
def pctSame(s1,s2):
# Make sorted arrays of string chars
s1c = [x for x in s1]
s1c.sort()
s2c = [x for x in s2]
s2c.sort()
i1 = 0
i2 = 0
same = 0
# "merge" strings, counting matches
while ( i1<len(s1c) and i2<len(s2c) ):
if s1c[i1]==s2c[i2]:
same += 2
i1 += 1
i2 += 1
elif s1c[i1] < s2c[i2]:
i1 += 1
else:
i2 += 1
# Return ratio of # of matching chars to total chars
return same/float(len(s1c)+len(s2c))
#生成字符串字符的排序数组
s1c=[x代表s1中的x]
s1c.sort()
s2c=[s2中x代表x]
s2c.sort()
i1=0
i2=0
相同=0
#“合并”字符串,计算匹配项
虽然(i1fromdifflib
几乎就是你想要的。它给出的分数在0到1之间,取决于它们看起来有多像。可能的dup:询问者要求一个模块可以做到这一点。我问的是如何做到这一点,没有不同的问题modules@bahaaz为什么?这是作业吗?你试过什么了?你能描述一下算法吗您希望实现的thm。这太模糊了。首先告诉我们compare('hello','yellow')
的答案应该是什么以及为什么。