使用Python字符串格式化与列表
我在使用Python 2.6.5构建一个字符串s
,这个字符串里面会有不同数量的%s
占位符,这些占位符的数量和列表x
里的条目数量是一样的。我需要把这个字符串格式化输出。下面的代码虽然不能正常工作,但它表达了我想要做的事情。在这个例子中,有三个%s
占位符,而列表里也有三个条目。
s = '%s BLAH %s FOO %s BAR'
x = ['1', '2', '3']
print s % (x)
我希望输出的字符串是:
1 BLAH 2 FOO 3 BAR
8 个回答
45
根据这个资源页面,如果列表x的长度不固定,我们可以使用:
', '.join(['%.2f']*len(x))
来为列表x
中的每个元素创建一个占位符。下面是一个例子:
x = [1/3.0, 1/6.0, 0.678]
s = ("elements in the list are ["+', '.join(['%.2f']*len(x))+"]") % tuple(x)
print s
>>> elements in the list are [0.33, 0.17, 0.68]
193
你可以看看Python的format方法。这样你就可以像下面这样定义你的格式字符串:
>>> s = '{0} BLAH BLAH {1} BLAH {2} BLAH BLIH BLEH'
>>> x = ['1', '2', '3']
>>> print s.format(*x)
'1 BLAH BLAH 2 BLAH 3 BLAH BLIH BLEH'
129
print s % tuple(x)
print s % (x)
而不是