@john22255

Где ошибка в коде замены символов строки по словарю?

Добрый вечер.
Прошу подсказки уважаемых форумчан для поиска ошибки в коде:
text ='БЫЛ'
x = "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ !:.,-"
y = "ГЗЩПБОФЪШЭАУЯЙЦДЮКНЕЖМТВСРЧЛЫИЬХ !:.,-"
d = dict(zip(x, y))
#print(d)

for keys in text:
    text = text.replace(keys, str(d[keys]))

print(text)


код должен заменить символы в строке по словарю.
В данном примере на выходе должно быть:
ЗЛУ
а по факту:
ЗУУ

Подскажите пожалуйста, где ошибка?
Спасибо.
  • Вопрос задан
  • 83 просмотра
Решения вопроса 2
fox_12
@fox_12 Куратор тега Python
Расставляю биты, управляю заряженными частицами
Вообще - эта задача в Python так решается:
x = "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ !:.,-"
y = "ГЗЩПБОФЪШЭАУЯЙЦДЮКНЕЖМТВСРЧЛЫИЬХ !:.,-"
my_table = str.maketrans(x, y)

text ='БЫЛ'
text.translate(my_table)


'ЗЛУ'
Ответ написан
Комментировать
SoreMix
@SoreMix Куратор тега Python
yellow
Сделайте
for keys in text:
    text = text.replace(keys, str(d[keys]))
    print(text)

увидите, что получили
1.БЫЛ -> ЗЫЛ
2. ЗЫЛ -> ЗЛЛ
Ну и на третьем этапе все Л заменяются на У
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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