tolendy017
@tolendy017
Jun backend

Как заменить буквы на звездочки(*) и цифры на 0. Python?

Дан список из символов и заменить на это. И вывести на печать. Пытался через replace там только несколько букв на свои заменяет. Можете подсказать метод?спасибо
  • Вопрос задан
  • 2351 просмотр
Решения вопроса 1
drygdryg
@drygdryg
Python-разработчик
Допустим, дан список символов — строка s:
s = "Lorem ipsum dolor sit amet, consectetur adipiscing elit 76 111 114 101 109 32 105 112 115 117 109"

Первый способ замены — использование специальных методов строк для проверки, к какой категории символов относится символ, и генератора:
repl_s = "".join("0" if i.isdigit() else "*" if i.isalpha() else i for i in s)

Второй способ — использовать str.translate:
import string

table = str.maketrans({i: "*" for i in string.ascii_letters} | {i: "0" for i in string.digits})
repl_s = s.translate(table)

Обратите внимание, что это будет работать только для символов из таблицы ASCII. Если потребуется поддержка Юникода, то нужно будет передать свои наборы букв и цифр вместо string.ascii_letters и string.digits.

Третий способ — использовать регулярные выражения и re.sub:
import re

repl_s = re.sub(r'[a-zA-Zа-яА-ЯёЁ]', '*', re.sub(r'\d', '0', s))


Результат:
"***** ***** ***** *** ****, *********** ********** **** 00 000 000 000 000 00 000 000 000 000 000"
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
GavriKos
@GavriKos
Циклом идете и проверяете - если буква - меняете на звездочку. Если цифра - на 0.
Как проверить что буква? Можно по словарю, можно по ACII. С цифрой то же самое
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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