phobious
@phobious
"нас согревает дыхание холода"

Как заменить каждую повторяющуюся букву в строке рандомным символом?

у меня есть скрипт который извлекает текст из input() и рандомно меняет букву на символ

соль в том, что если эта буква в строке повторяется больше одного раза, то все эти буквы заменяются одним и тем же символом

как заменить каждую повторяющуюся букву разными символами?

вот набросал код :
sm = ['&', '@', '!', '$']

input_text = (input('введите текст : '))

if "а" in input_text:
    t_t_c = input_text
    replace_text = t_t_c.replace('а', (random.choice(sm)))
    print(replace_text)


использовал random.choice так как это самое простое в исполнении
  • Вопрос задан
  • 85 просмотров
Решения вопроса 1
SoreMix
@SoreMix
yellow
input_text = input('введите текст : ')

while 'а' in input_text:
    input_text = input_text.replace('а', (random.choice(sm)), 1)

print(input_text)


У метода replace есть параметр maxcount, отвечающий за максимальное кол-во замен.
Первое, что приходит на ум - сделать цикл, пока буква есть в слове и заменять эту букву на рандомный символ.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
adugin
@adugin Куратор тега Python
Передайте вторым аргументом функцию, которая будет вызываться при каждой замене:
re.sub('a', lambda c: random.choice(sm), 'aabbbaccddaaadde')
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы