Найти - Пользователи
Полная версия: непонятка с .format()
Начало » Python для новичков » непонятка с .format()
1
pupkin2
привет.

имеется строка, к примеру: “{A}{B}”
как можно использовать format() так, чтоб можно было отформатировать только A, к примеру. как-то непонятно объяснил… чичас…

имеются строки, попадающие в алгоритм из файла. файл - некоторое правило создаваемое пользователем. в файле, пользователю позволено использовать макросы, которые подменяются некоторыми значениями. макросы фиксированы. т.е., к примеру, я уверен в том, что юзеру позволено использовать мкросы A и B.
сложность с format() в том, что он не позволяет заменить только часть макросов из перечисленных в нем. иначе сообщает ошибку.

решение влоб - проверять строку на присутствие в ней какого-то конкретного макроса, и заменять только его. и так проверять на каждый макрос. но что-то это решение мне кажется глуповатым. подскажите продвинутые средства.

спасибо.
Isem
Смотрите в сторону 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'
pupkin2
Isem, именно то что нужно! спасибо!
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