Как удалить список подстрок из заданной строки в Python? - PullRequest
0 голосов
/ 15 января 2020

Итак, у меня есть эта строка, и я перебираю список подстрок для удаления. В Ruby, где строки являются изменяемыми, я просто смогу продолжать изменять исходную строку на месте. Но я сталкиваюсь с проблемами, выясняющими это из-за того, что строки неизменяемы в Python.

Если это моя строка, и я пытаюсь удалить подстроки в следующем списке (раз):

string = "Play soccer tomorrow from 2pm to 3pm @homies"
times = ['tomorrow', 'from 2pm to 3pm']

Как получить эту строку в качестве желаемого результата?

removed_times = "Play soccer @homies"

Редактировать: отличается от предложенных вопросов b / c из нескольких подстрок

Ответы [ 3 ]

4 голосов
/ 15 января 2020

Вы можете просто использовать str.replace() для замены подстрок на "". Это также означает, что окончательный результат нужно будет разделить и объединить с помощью " ", чтобы после замены был только один пробел между словами. Для этого вы можете использовать str.split() и str.join().

string = "Play soccer tomorrow from 2pm to 3pm @homies"

times = ["tomorrow", "from 2pm to 3pm"]

for time in times:
    string = string.replace(time, "")

print(" ".join(string.split()))
# Play soccer @homies

Примечание: Строки неизменны в python, поэтому вы не можете просто изменить его на месте с помощью string.replace(time, ""). Вам нужно переназначить строку с string = string.replace(time, "").

2 голосов
/ 15 января 2020

Вы можете split строку в подстроке, а затем join ее обратно вместе:

string = "Play soccer tomorrow from 2pm to 3pm @homies"
times = ['tomorrow', 'from 2pm to 3pm']
for t in times:
    string = ''.join(string.split(t))

Обратите внимание, что это возвращает строку 'Play soccer @homies', поскольку пробелы не перехватываются и удаляются в ваши времена.

0 голосов
/ 15 января 2020
string = "Play soccer tomorrow from 2pm to 3pm @homies"
times = ['tomorrow', 'from 2pm to 3pm']
removed_times = string
for x in times:
    removed_times = removed_times.replace(' ' + x + ' ', ' ')
print(removed_times)
#Play soccer @homies
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...