python - 方法 set_seq1 和 set_seq2 的工作,difflib python

标签 python python-2.7 difflib sequencematcher

我已经检查了 difflib 的文档,我对如何 difflib.SequenceMatcher.ratio() 感到困惑确实有效。考虑一下:

s = difflib.SequenceMatcher(None, "hey here" , "hey there").ratio()
print s 

给出 s = 0.9411764705882353
我想知道它是如何计算出来的。通过实际查看一个字符串与其他字符串的偏差来比较 2 个字符串。对于 2 个字符串 ab 文档说:

差异被计算为“我们需要对‘a’做什么才能将其更改为‘b’?”

还有类似的东西:

对于 b 中的 x,b2j[x] 是 x 出现的索引列表(进入 b);垃圾元素不出现

请解释上面的 s 示例。

最佳答案

来自文档:

Where T is the total number of elements in both sequences, and M is the number of matches, this is 2.0*M / T.

在这种情况下,T 为 17,因为第一个字符串有 8 个字符,第二个字符串有 9 个。M 为 8,因为第一个字符串中的八个字符与第二个字符串中的字符匹配。 2 * 8/17 等于 0.9411764705882353。

关于python - 方法 set_seq1 和 set_seq2 的工作,difflib python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23681912/

相关文章:

python - 为什么它没有从 YouTube 获取任何 'a' 标签?

python - django登录到上一页

python - 如果我在运行时才知道文件名,如何从文件导入?

Python:获取 itertools.combinations 返回逐渐更大的组合

python - 匹配两个几乎相同的列表的元素

python - 如何在 password_reset_complete Django 中重定向登录链接

python - 在 str.format() 中使用位置编号

python - 尽管我的类和属性似乎设置正确,但在 Python : Why AttributeError, 中练习继承?

Python Difflib Deltas 和比较 Ndiff

python - 无法在 python 中导入 Difflib。我该如何解决?