поиск определенного элемента списка в строке Python - PullRequest
0 голосов
/ 09 февраля 2019

У меня есть две строки:

 a = "The quick brown fox did jump over a log"
 b = "The brown rabbit quickly did outjump the fox"

, каждая из которых была преобразована в списки в каждом пространстве.Я хочу сделать цикл for, который принимает каждое слово одно за другим в списке A и ищет его в строке B, если оно найдено, тогда слово добавляется в новую строку.Как только слово найдено, оно удаляет все первое вхождение слова во второй строке.Он чувствителен к регистру, «the» - это не то же самое, что «The». Я запутался в том, как искать конкретное слово в строке и затем удалять его.

Итак, сначала нужно взять слово изсписок A «The» и искать его в строке B, так как он найден, новая строка будет состоять из слова «The».Следующее слово быстрое, строка B имеет быстрый, слово Быстрое содержит быстрый, так что тогда бы быстрый будет добавлен к новой строке.

Код, который у меня пока есть:

a = "The quick brown fox did jump over a log"
b = "The brown rabbit quickly did outjump the fox"

import re

aa = re.sub("[^\w]", " ",  a).split()
bb = re.sub("[^\w]", " ",  b).split()
for aa[0] in range(b):

ЕслиЯ должен был искать каждое слово в Списке A до строки B, я получал бы «Быстрая коричневая лиса прыгала a»

Примечание: каждое слово чувствительно к регистру, и если все сделано правильно, не должно быть повторения слов.

1 Ответ

0 голосов
/ 09 февраля 2019

Одна вещь, которую вы можете попробовать, это поместить пробел как префикс, так и суффикс в каждое слово обеих строк при преобразовании их в списки, а затем удалить их, когда вы хотите получить окончательный результат:

a = "The quick brown fox did jump over a log"
b = "The brown rabbit quickly did outjump the fox"

# Convert to list with prefix and suffix.
listA = [' ' + elem + ' ' for elem in a.split()]
listB = [' ' + elem + ' ' for elem in b.split()]

# Loop to check for each word in listA if it's in listB.
c = []
for elem in listA:
    if elem in listB:
        c.append(elem[1:-1]) # Append element without prefix and suffix.
        listB.remove(elem)

b = " ".join([elem[1:-1] for elem in listB]) # Remove prefix and suffix.
c = " ".join(c)

print("New string:", c)
print("New b:", b)

Выход:

New string: The brown fox did
New b: rabbit quickly outjump the
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...