Это может применяться не во всех случаях, но если вы хотите сравнить символы, вы можете использовать set
:
a = "word"
b = "wind"
diff = set.intersection(set(a),set(b))
print(len(diff))
>> 2
Это игнорирует последовательности, когда вы группируете их в набор уникальных символов.
Другая интересная стандартная библиотека модулей Python, которую вы можете использовать: difflib
.
from difflib import Differ
d = Differ()
a = "word"
b = "wind"
[i for i in d.compare(a,b) if i.startswith('-')]
>>['- o', '- r']
difflib
, по сути, предоставляет методы для сравнения последовательностей, таких как строки.Из вышеприведенного объекта Differ
вы можете сравнить 2 строки и определить символы, которые добавляются или удаляются для отслеживания изменений из строки a
в строку b
.В приведенном примере понимание списка используется для фильтрации символов, которые удалены из a
до b
, вы также можете проверить символы, которые начинаются с +
, для добавляемых символов.
[i for i in d.compare(a,b) if i.startswith('+')]
>>['+ i', '+ n']
Или символы, общие для обеих последовательностей адресации
Как проверить, сколько символов у переменной общего с другой переменной
common = [i for i in d.compare(a,b) if i.startswith(' ')]
print(common, len(common))
>> [' w', ' d'] 2
Подробнее оDiffer
объект здесь