все Python 3difflibпонятие
difflib.SequenceMatcher
сравнение последовательностей
Класс, сравнивающий две последовательности (строки, списки строк): мера сходства ratio() и список правок.
Синтаксис
SequenceMatcher(isjunk=None, a='', b='', autojunk=True).ratio()
ratio() несимметрична: для 'tide' и 'diet' она 0.25, а в обратном порядке — 0.5. При длине второй последовательности от 200 элементов включается autojunk: элементы, составляющие больше 1 % от неё, считаются мусором, и почти одинаковые длинные тексты дают сходство 0.0 — передавайте autojunk=False. ratio() дорогая; quick_ratio() и real_quick_ratio() дают быструю верхнюю оценку для отсева.
Примеры
from difflib import SequenceMatcher
print(SequenceMatcher(None, 'abcd', 'bcde').ratio()) # → 0.75
print(SequenceMatcher(None, 'tide', 'diet').ratio()) # → 0.25
print(SequenceMatcher(None, 'diet', 'tide').ratio()) # → 0.5
from difflib import SequenceMatcher
a = 'x' + 'ab' * 150
b = 'y' + 'ab' * 150
print(SequenceMatcher(None, a, b).ratio()) # → 0.0 — сработал autojunk
print(round(SequenceMatcher(None, a, b, autojunk=False).ratio(), 3)) # → 0.997
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности