Как на 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"
→ Ссылка