Объединить 2 предложения перекрытия - PullRequest
1 голос
/ 01 октября 2019

Я хочу объединить в 2 предложения, например:

sent1 = 'abcdefghiklmn'
sent2 = 'ziklmopqrst'

2 предложения имеют одинаковые iklm

result = 'abcdefghiklmnopqrst'

Большое спасибо!

Ответы [ 3 ]

1 голос
/ 01 октября 2019

может быть, это может помочь

sent1 = 'abcdefghiklmn'
sent2 = 'ziklmnopqrst'

for i in sent1:
    n = 0
    for f in sent2:
        n += 1
        if i == f:
            result = sent1 + sent2[n:]
            break

print(result)
0 голосов
/ 01 октября 2019

Это может работать:

list(set(list("abc")+list("adef")))

вывод:

['a', 'c', 'b', 'e', 'd', 'f']

и для преобразования его в одну строку:

"".join(['a', 'c', 'b', 'e', 'd', 'f'])

вывод:

'acbedf'
0 голосов
/ 01 октября 2019

difflib.SequenceMatcher пригодится:

from difflib import SequenceMatcher
match = SequenceMatcher(None, sent1, sent2).find_longest_match(0, len(sent1), 0, len(sent2))
result = sent1[:match.a]+sent2[match.b:]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...