Python - короткий способ распаковать список для оператора форматирования строки? - PullRequest
7 голосов
/ 02 ноября 2011

Вариации операторов * или **, к сожалению, не работают:

lstData = [1,2,3,4]
str = 'The %s are %d, %d, %d, and %d' % ('numbers', *lstData)

Есть ли простой способ?

Ответы [ 3 ]

9 голосов
/ 02 ноября 2011

Используйте формат :

str = 'The {} are {}, {}, {}, and {}'.format('numbers', *lstData)

см. Документы для получения дополнительной информации о возможном форматировании (числа с плавающей запятой, десятичные точки, преобразование, ..).

2 голосов
/ 02 ноября 2011
>>> data = range(5)
>>> 'The {0} are {1}, {2}, {3}, {4} and {5}'.format('numbers', *data)
'The numbers are 0, 1, 2, 3 and 4'
2 голосов
/ 02 ноября 2011
s = 'The %s are %d, %d, %d, and %d' % tuple(['numbers'] + lstData)
...