Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Почему не работает данная функция в Python

Родион Перкин Ученик (74), на голосовании 2 дня назад
 def translate_str(str, table): 
for key in list(table.keys()):
str.replace(key, table[key])
return str
Должна заменять ключи из таблицы на значение из таблицы
Например
 table = {'__': '_'}
print(translate_str('__-__', table)
Должно выводить "_-_", а выводит без изменений, почему?
Помогите мне пж!
Голосование за лучший ответ
Charlies Kvit Ученик (126) 1 месяц назад
 str = str.replace(key, table[key])
Метод replace ВОЗВРАЩАЕТ значение, но не меняет саму переменную. Так что не забывайте приравнивать.
Рустам Абдрашитов Мыслитель (8536) 1 месяц назад
 def translate_str(s, table):  
for key in sorted(table.keys(), key=len, reverse=True):
s = s.replace(key, table[key])
return s

table = {'__': '_', '--': '-'}
print(translate_str('__-__--', table))
Похожие вопросы