difflib - как найти, игнорируя последовательность?
У меня есть код, где используется difflib. Использую SecuenceMatcher. Если сравнить две переменных: Privet; rPivte .., где перемешаны буквы, то выйдет результат всего 0.666... (66.6%). Но мне нужно, чтобы функция не смотрела на порядок букв и выдавала 1.0 (100.0%). Какая функция нужна, или как настроить SecuenceMatcher, подскажите, пожалуйста!
Мой код внизу:
from difflib import SequenceMatcher
def sim(a, b):
return SecuenceMatcher(None, a, b).ratio()
print(sim('Privet', 'rPivte'))
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Используйте вместо ratio
функцию quick_ratio
, она не смотрит на порядок символов:
from difflib import SequenceMatcher
def sim(a, b):
return SequenceMatcher(None, a, b).quick_ratio()
print(sim('Privet', 'rPivte'))
# 1.0
На английском СО есть немного пояснений.