Форум сайта python.su
привет.
имеется строка, к примеру: “{A}{B}”
как можно использовать format() так, чтоб можно было отформатировать только A, к примеру. как-то непонятно объяснил… чичас…
имеются строки, попадающие в алгоритм из файла. файл - некоторое правило создаваемое пользователем. в файле, пользователю позволено использовать макросы, которые подменяются некоторыми значениями. макросы фиксированы. т.е., к примеру, я уверен в том, что юзеру позволено использовать мкросы A и B.
сложность с format() в том, что он не позволяет заменить только часть макросов из перечисленных в нем. иначе сообщает ошибку.
решение влоб - проверять строку на присутствие в ней какого-то конкретного макроса, и заменять только его. и так проверять на каждый макрос. но что-то это решение мне кажется глуповатым. подскажите продвинутые средства.
спасибо.
Офлайн
Смотрите в сторону str.format_map(), но это только для Python 3.2.2 и выше.
Пример отсюда: http://docs.python.org/py3k/library/stdtypes.html#str.format_map
class Default(dict):
def __missing__(self, key):
return key
'{name} was born in {country}'.format_map(Default(name='Guido'))
'Guido was born in country'
Отредактировано (Ноя. 14, 2011 13:55:34)
Офлайн
Isem, именно то что нужно! спасибо!
Офлайн