Size: a a a

Telethon Talks RU

2019 May 04

K0

Kobe 03:08 EEST in Telethon Talks RU
Я редко по питону вопросы задаю, но вот все же знают про метод replace у стринга. А что если мне нужно каждый символ в строке заменить другим соответствующим? Задать какой-то типа словарь
источник

s

std::mpa🌲 in Telethon Talks RU
другим соответствующим, що?
источник

K0

Kobe 03:08 EEST in Telethon Talks RU
Ну чтобы каждая буква а в строке поменялась на б, б на в итд
источник

K0

Kobe 03:08 EEST in Telethon Talks RU
Например
источник

K0

Kobe 03:08 EEST in Telethon Talks RU
Точнее, такое я сейчас уже нагуглил, в питоне есть string.translate
источник

K0

Kobe 03:08 EEST in Telethon Talks RU
Но у меня чуть покруче ситуация, некоторые символы нужно заменять двумя или даже тремя
источник

s

std::mpa🌲 in Telethon Talks RU
хаха! столкнулся с иммутабельностью?)
источник

K0

Kobe 03:08 EEST in Telethon Talks RU
Та то уже давно
источник

K0

Kobe 03:08 EEST in Telethon Talks RU
Ну скажем, я понимаю как эту задачу изи решить, просто for-ом перебирать каждый символ. Но я прям чую что это говнокод и должно быть более правильное решение)
источник

K0

Kobe 03:08 EEST in Telethon Talks RU
Сделать какой-то маппинг
источник

s

std::mpa🌲 in Telethon Talks RU
def changer(sentence, pairs):
   for a, b in pairs:
      sentence = sentence.replace(a, b)
   return sentence
источник

s

std::mpa🌲 in Telethon Talks RU
Это правильное решение, trust me
источник

K0

Kobe 03:08 EEST in Telethon Talks RU
Точно?)
источник

F

FuriKuri in Telethon Talks RU
👍
источник

F

FuriKuri in Telethon Talks RU
можно даже без функции, оставив только str.replace(old, new[, max])
источник

s

std::mpa🌲 in Telethon Talks RU
Kobe 03:08 EEST
Точно?)
дада
источник

K0

Kobe 03:08 EEST in Telethon Talks RU
О я придумал почему нет
источник

K0

Kobe 03:08 EEST in Telethon Talks RU
Тут же постоянно вызывается replace, а он смотрит на всю строку сразу. То есть он может повторно заменять символы, которые в предыдущих итерациях уже были заменены
источник

K0

Kobe 03:08 EEST in Telethon Talks RU
Лучше уже по символу чекать
источник

s

std::mpa🌲 in Telethon Talks RU
ну
источник