gpt4 book ai didi

python - SequenceMatcher.ratio 如何在 difflib 中工作

转载 作者:太空狗 更新时间:2023-10-30 02:48:32 26 4
gpt4 key购买 nike

我在试用 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, and M is the number of matches, this is 2.0*M / T.

所以,对于我的情况:

  1. T=4M=1 所以比率 2*1/4 = 0.5
  2. T=5M=2 所以比率 2*2/5 = 0.8
  3. T=6M=1 所以比率 2*1/6.0 = 0.33

根据我的理解T = len(aabc) + len(a)M=2因为a中出现了两次>aabc.

那么,我哪里错了我错过了什么。?

HereSequenceMatcher.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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com