Из Python 2.6:
>>> "www.someurl.com/{0}/blah.html".format(100)
'www.someurl.com/100/blah.html'
Для поддержки старых сред оператор %
выполняет аналогичную роль:
>>> "www.someurl.com/%d/blah.html" % 100
'www.someurl.com/100/blah.html'
Если вы хотите поддерживать именованные аргументы, вы можете передать dict
.
>>> url_args = {'num' : 100 }
>>> "www.someurl.com/%(num)d/blah.html" % url_args
'www.someurl.com/100/blah.html'
В общем, когда типы должны быть смешаны, я рекомендую форматирование строки:
>>> '%d: %s' % (1, 'string formatting',)
'1: string formatting'
Форматирование строк приводит объекты к строкам с использованием их методов __str__
. [*] Существует гораздо более подробная документация по форматированию строк Python в документах . Это поведение отличается в Python 3+, так как все строки являются Unicode.
Если у вас есть список или кортеж строк, метод join
довольно удобен. Он применяет разделитель между всеми элементами итерируемого.
>>> ' '.join(['2:', 'list', 'of', 'strings'])
'2: list of strings'
Если вы когда-либо находитесь в среде, где вам необходимо поддерживать устаревшую среду (например, Python <2.5), вам следует избегать конкатенации строк. Смотрите статью, на которую есть ссылки в комментариях. </p>
[*] В строках Unicode используется метод __unicode__
.
>>> u'3: %s' % ':)'
u'3: :)'