4

SequenceMatcher.ratio()2 つの文字列の類似性を取得するために使用しようとしています:"86418648""86488648":

>>> SequenceMatcher(None,"86418648","86488648").ratio()
0.5

返される比率は です0.5。これは、2 つの文字列で異なる文字が 1 つしかないため、予想よりもはるかに低くなっています。

マッチングブロックをもとに比率を算出しているようです。だから私は実行しようとしましたSequenceMatcher.get_matching_blocks()

>>> SequenceMatcher(None,"86418648","86488648").get_matching_blocks()
[Match(a=4, b=0, size=4), Match(a=8, b=8, size=0)]

しかし、私は結果が次のようになると予想していました:

[Match(a=0, b=0, size=3), Match(a=4, b=4, size=4), Match(a=8, b=8, size=0)]

最初の 3 つの数字が一致しなかった理由を説明できる人はいます"864"か?

4

1 に答える 1