作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在试用 python 的 difflib 模块时遇到了 SequenceMatcher
。因此,我尝试了以下示例,但无法理解发生了什么。
>>> SequenceMatcher(None,"abc","a").ratio()
0.5
>>> SequenceMatcher(None,"aabc","a").ratio()
0.4
>>> SequenceMatcher(None,"aabc","aa").ratio()
0.6666666666666666
现在,根据ratio :
Return a measure of the sequences' similarity as a float in the range [0, 1]. Where
T
is the total number of elements in both sequences, andM
is the number of matches, this is2.0*M / T
.
所以,对于我的情况:
T=4
和 M=1
所以比率 2*1/4 = 0.5
T=5
和 M=2
所以比率 2*2/5 = 0.8
T=6
和 M=1
所以比率 2*1/6.0 = 0.33
根据我的理解T = len(aabc) + len(a)
和M=2
因为a
在中出现了两次>aabc
.
那么,我哪里错了我错过了什么。?
Here是SequenceMatcher.ratio()
最佳答案
第一个案例你做对了。在第二种情况下,aabc
中只有一个 a
匹配,因此 M = 1。在第三个示例中,两个 a
匹配,所以 M = 2。
[附言:您指的是古老的 Python 2.4 源代码。当前源代码位于 hg.python.org。 .]
关于python - SequenceMatcher.ratio 如何在 difflib 中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12436672/
我是一名优秀的程序员,十分优秀!