Как отформатировать строку Python с несколькими символами в качестве вставной части - PullRequest
0 голосов
/ 21 сентября 2018

Это все хорошо, чтобы заполнить один символ:

>>> '{:{pad}>{num}}'.format('12345',num='10', pad='a')
aaaaa12345

Однако, как распечатать abcab12345, используя 'abc' в качестве символов заполнения?

это плохо:

>>> '{:{pad}>{num}}'.format('12345',num='10', pad='abc')
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-38-85d5680ad88a> in <module>()
----> 1 '{:{pad}>{num}}'.format('hello',num='10', pad='abc')

ValueError: Invalid format specifier

Мне нравится язык мини форматов в python3 BTW; -)

1 Ответ

0 голосов
/ 21 сентября 2018

Вы должны объединить операции format ( СОВЕТ : вам нужно защитить {} с двойными {{}} для каждого уровня вложенности формата):

baseFmtStr = "'{{{{:{{pad}}>{num}}}}}'"
resultStr = baseFmtStr.format(num=10).format(pad='-').format(12345)

Thisдавайте приведем '-----12345'

Здесь у вас есть живой пример

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...