Quiero unirme a 2 oraciones como:

sent1 = 'abcdefghiklmn'
sent2 = 'ziklmopqrst'

2 oraciones tienen el mismo iklm

result = 'abcdefghiklmnopqrst'

¡Muchas gracias!

1
Lộc Thanh 1 oct. 2019 a las 11:04

3 respuestas

La mejor respuesta

difflib.SequenceMatcher es útil:

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:]
0
Armali 1 oct. 2019 a las 08:27

Tal vez esto pueda ayudar

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)
2
Saba 1 oct. 2019 a las 08:46

Esto puede funcionar:

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

La salida es:

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

Y para convertirlo en una sola cadena:

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

La producción es:

'acbedf'
0
Praveen Kumar Sridhar 1 oct. 2019 a las 10:45
58180489