Как искать сразу несколько подстрок через find в python?
text = "ужас вот ты достал"
textsplit = text.split()
for list in textsplit:
search = list.find("ужас")
if search != -1:
numbersofletter = len(list)
textreplace = text.replace(list, numbersofletter * "*")
print(textreplace)
Мне надо написать программу которая будет заменять все маты на "*". Я смог сделать чтобы оно замазывало слово "ужас" (мат заменен), а мне надо чтобы оно еще и замазывало "достал", подскажите как через find искать сразу несколько слов? Создать функцию или что?
Ответы (1 шт):
Автор решения: Сергей
→ Ссылка
Я бы через множества делал (стало любопытно, так что и сделал) - комментарии в коде поясняющие. Тут тогда цикл не нужен, чтобы по всем матам проходить.
text = "ужас вот ты достал"
# Множество с плохими словами
bad_words = {"ужас", "достал", "класс"}
# Преобразуем строку в множество
textsplit = set (text.split())
# Определяем все плохие слова
result = bad_words & textsplit
textreplace = text
# Заменяем все плохие слова последовательно
for word in result:
if word in text:
numbersofletter = len(word)
textreplace = textreplace.replace(word, numbersofletter * "*")
print(textreplace)