Я новичок в python, и мне нужна помощь по difflib. Я пытался прочитать документацию, но для меня не легко понять документы.
Я хотел бы сравнить две строки, и я хочу, чтобы на выходе была только часть префикса совпадений между двумя строками (не выводить различия).
Пример:
t1 = "hello my name is Tom"
t2 = "hello his name is Sawyer"
ожидаемый результат: "привет"
Я попробовал следующие подходы, но вывод не то, что я хочу, потому что он выводит вывод как массив, а также выводит на печать не только часть:
#!/usr/bin/python
import difflib
t1 = "hello my name is Tom"
t2 = "hello his name is Sawyer"
seq = difflib.Differ()
seq = seq.compare(t1,t2)
print list(seq)
другой пример-2:
t1 = "20180628-153020"
t2 = "20180628-173020"
ожидаемая распечатка:
"20180628-1"
и суффикс "3020", даже если обе строки соответствуют позиции и символам, его следует игнорировать.
Пожалуйста, помогите мне .. спасибо ...
обновление 2018/07/02
Я написал небольшой код, чтобы получить только одинаковую часть префикса между двумя строками (без использования takewhile
в качестве 1-го ответа от @Eugene), но я думаю, что 2-й код, написанный @Eugene в ответе, является более коротким и эффективным это мое.
вот мой код:
def getprefix(s1, s2):
pref = ""
ls1 = list(s1)
ls2 = list(s2)
i=0
while i < len(ls1):
if ls1[i] not in ls2[i]:
return pref
pref += ls1[i]
i += 1