比较两个字符串的相似度

最近在做算法作业,需要比较两个字符串的相似度,并且返回相同的元素所占的百分比。

如果让我自己做的话,思路是把两个字符串分别转化为列表,然后在列表中解决掉。

new = [i for i,j in zip(a,b) if i == j]
ratio = 2.0 * len(new) / (len(a) + len(b))
去网上一查,发现python自带比较相似度的模块,difflib。比较两个字符串的模块是difflib.SequenceMatcher,使用起来很简单:

seq = difflib.SequenceMatcher(None, a, b)
ratio = seq.ratio()
最主要的是,python原生的模块的效率都比较好。其中None的位置是一个函数,用来去掉自己不想算在内的元素。比如我想把空格排除在外:

seq = difflib.SequenceMatcher(lambda x:x=" ", a, b)
ratio = seq.ratio()
这样不用自造轮子了。

你可能感兴趣的:(python)