Найти - Пользователи
Полная версия: Нужна Помощь автоматизировать замену replace
Начало » Python для новичков » Нужна Помощь автоматизировать замену replace
1
ke1pl
Нужна Помощь автоматизировать замену replace
Данные в таком виде:
trans_list={'1040':'R01R','1041':'R02R','1042':'R03R'}
Существует строка msg
Надо в этой строке заменить все вложения(1040 и 1041 и 1042) на (R01R и R02R и R03R)
Я нашел решение:
msg = msg.replace('1040', trans_ru['1040'])
msg = msg.replace('1041', trans_ru['1041'])
msg = msg.replace('1042', trans_ru['1042'])
это подходит для 3х замен, а мне надо бы 64. Писать 64 строчки кода не вариант. Подскажите как реализовать в цикле…
igor.kaist
a=[('a','b'),('q','w')]
for x in a:
msg=msq.replace(x[0],x[1])
типа этого?
ke1pl
может ты имел ввиду так?
a=[('a','b'),('q','w')]
for x in msg:
msg=msg.replace(x[0],x[1])
эмм… мне надо что б заменялось несколько символов
igor.kaist
нет, именно мой вариант. применительно к твоему коду:
trans_list={'1040':'R01R','1041':'R02R','1042':'R03R'}
for x in trans_list:
msg=msq.replace(x,trans_list[x])
попробуй еще раз посмотреть на код и подумать над логикой работы
ke1pl
Согласен, сглупил.

Выдает ошибку
   File "e:\python\GOGO.PY", line 61, in trans_ru
for x in trans_ru:
TypeError: iteration over non-sequence
вот сама по себе функция
def trans_ru(msg):
msgout = str(msg)
for x in trans_ru:
msgout=msq.replace(x,trans_ru[x])
return msgout
Не пойму почему выбивает ошибку…
igor.kaist
У вас какая версия питона то?
for x in trans_ru.keys():
попробуйте..
Добавлено:
Присмотрелся к вашему коду в последнем посте. Попробуйте опять представить логигу его работы. На бумажке расписать иногда помогает :)
trans_ru в вашем коде это функция а не словарь, как предпологалось ранее. Что на что заменять то?!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB