关于SequenceMatcher.ratio()函数在python中的功能的清晰度

时间:2019-04-02 07:29:58

标签: python python-3.x difflib

我对SequenceMatcher.ratio()的工作方式感到困惑。在互联网上搜索后,我了解到用于计算比率的公式为:

比率= 2.0 * M / T

其中

M =比赛次数

T =两个序列中的元素总数

我尝试在函数中输入不同的值,但在某些情况下得到了一些意想不到的答案

我尝试过的值:

>>> SequenceMatcher(None, "rain","nrai").ratio(). 
0.75

在上述情况下使用比率公式应给出答案1.0

M = 4 (as all the letters match)
T = 8 (both words are of 4 letters)
Ratio = 2.0 * 4 / 8
Ratio = 8/8 = 1.0

我正在努力理解为什么会有这种方式?预先感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

有3个匹配项: 鉴于“雨”“ nrai”

"ra"
"ai"
"rai"

2 * 3 / 8 = 0.75

您不匹配两个序列上是否都存在字母,您匹配的是字母序列(组)。

1.0仅在序列正确时返回