Как на python организовать сравнение двух строк?
Пробовал проходить по строкам циклом и увеличивать переменную coincidences при совпадении
s = "hello world how are you doing"
a = "doing"
coincidences = 0
for r in range(max(len(a), len(s))):
try:
if s[r] == a[r]:
coincidences += 1
except IndexError:
break
print(100/max(len(s), len(a)) * coincidences)
Но не хватает точности сравнения.
Есть ли модуль для сравнения строк в python?
Ответы (1 шт):
Автор решения: turkindv
→ Ссылка
Думаю можно попробовать что такого вида, если вы хотите проверять на сколько процентов одна строка входит в другую
s = "hello world how are you doing"
a = "doing"
mn_string, mx_string = (s, a) if len(s) < len(a) else (a, s)
for i in range(len(mn_string)-1, -1, -1):
if mn_string[:i+1] in mx_string:
coincidences = i+1
break
print(coincidences*100/ len(mx_string)) # 17.24137931034483
но это не будет работать в случае если обе строки будут содержать по несколько слов и важно что слова могут стоять на разных местах например:
# тут сработает верно, ответ около 48
s = "My name is Dima"
a = "is Dima"
# тут сработает неверно, ответ будет 0
s = "My name is Dima"
a = "They call me Dima"