Python 3 имеет именно такой синтаксис, за исключением того, что оператор %
теперь является методом format
. str.format
также был добавлен в Python 2.6+, чтобы сгладить переход к Python 3. Подробнее см. синтаксис строки формата .
>>> '{0} {1} {1}' % ('foo', 'bar')
'foo bar bar'
Это не может быть сделано с кортежем в старых версиях Python. Вы можете приблизиться, используя ключи сопоставления, заключенные в скобки. С ключами сопоставления значения формата должны передаваться как dict, а не как кортеж.
>>> '%(0)s %(1)s %(1)s' % {'0': 'foo', '1': 'bar'}
'foo bar bar'
Из Руководства по Python :
Если правильным аргументом является словарь (или другой тип отображения), то форматы в строке должны включать заключенный в скобки ключ отображения в этот словарь, вставленный сразу после символа «%». Клавиша сопоставления выбирает значение для форматирования из сопоставления.