Это решение без метода replace()
, если вы хотите что-то подобное:
def censor(text,word):
censor_block = '*'*len(word)
text_words = text.split(' ')
return ' '.join(
[text_word if text_word != word else censor_block for text_word in text_words]
)
Вам нужно разбить текст на слова, тогда вам нужно перебрать эти слова, и если вы найти данное слово, нужно заменить его на censor_block
. Наконец, вам нужно объединить список слов в текст и вернуть его. С a for l oop вам нужно использовать индексы, потому что строка неизменяема. Вместо этого я использовал понимание списка.
Вместо text_word
и censor_block
вы можете использовать функции для обработки более сложных задач.
[f(x) if condition else g(x) for x in sequence]
[f(x) for x in sequence if condition]
[f(x) for x in sequence]
Они будут работать .
Надеюсь, это поможет :)