对列表使用Python字符串格式

2024-04-18 15:37:53 发布

您现在位置: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


Tags: 字符串标记列表数量foobar条目blah
3条回答
print s % tuple(x)

而不是

print s % (x)

根据这个resource page,如果x的长度是变化的,我们可以使用:

', '.join(['%.2f']*len(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]

您应该看看python的format方法。然后可以定义如下格式字符串:

>>> s = '{0} BLAH {1} BLAH BLAH {2} BLAH BLAH BLAH'
>>> x = ['1', '2', '3']
>>> print s.format(*x)
'1 BLAH 2 BLAH BLAH 3 BLAH BLAH BLAH'

相关问题 更多 >