Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 14, 2011 10:10:22

pupkin2
От:
Зарегистрирован: 2011-10-23
Сообщения: 103
Репутация: +  1  -
Профиль   Отправить e-mail  

непонятка с .format()

привет.

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

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

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

спасибо.



Офлайн

#2 Ноя. 14, 2011 13:52:41

Isem
От:
Зарегистрирован: 2010-08-27
Сообщения: 447
Репутация: +  7  -
Профиль   Отправить e-mail  

непонятка с .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)

Офлайн

#3 Ноя. 14, 2011 21:58:04

pupkin2
От:
Зарегистрирован: 2011-10-23
Сообщения: 103
Репутация: +  1  -
Профиль   Отправить e-mail  

непонятка с .format()

Isem, именно то что нужно! спасибо!



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version