Учу python, в одной учебной задаче есть часть, которую я не совсем понимаю:
Есть список со строками. Каждая строка - имя человека не больше 20 символов.
Есть переменная с еще одной строкой (так же имя человека). Нужно узнать есть ли она в списке (это просто) и если нет - вывести похожие, разница имени из переменной и похожего слова не больше трех букв.
Как это можно реализовать наиболее компактно?
Гугл отсылает штудировать огромные статьи по нечеткому поиску, которые ориентированы на большие тексты, разные падежи и всё в таком духе.
Я полагаю, что это более простая задача, чем тебе кажется.
Во-первых, нужно проверить, что длины имён одинаковы
Во-вторых, нужно удостовериться, что не более трёх букв разницы.
Как-то так:
def similar(first, second):
if not len(first) == len(second):
return False
if len(first) - sum(l1==l2 for l1, l2 in zip(first, second)) > 3:
return False
return True