2

如果我有一个字符串列表,其中一些包含包含在 中的代码{},以后是否可以format()在这些字符串上使用?

在这种情况下,我想为身体伤害写一些风味文本,例如,"He appears to be limping on his {1} leg."但我想根据所讨论的腿用“左”或“右”来格式化该字符串。

4

3 回答 3

11

当然有可能。只需存储字符串并.format()稍后调用它们:

>>> someformat = 'Hello {}!'
>>> someformat
'Hello {}!'
>>> print someformat.format('World')
Hello World!

.format()只是字符串上的一个方法,只有当您调用该方法时,该字符串才会被解释为模板。就像.strip()and一样.join(),您可以在选择的时间在任何字符串对象上调用该方法。

于 2013-03-11T10:12:38.050 回答
1

您可以随时拨打电话.format()

您可以在文件的最顶部定义格式字符串,甚至可以多次使用它来处理几个不同的数据。

当您真正调用它时,这完全取决于您(分别是您的需求),只要您在某处引用它即可。

即,不要做

TEMPLATE = "He appears to be limping on his {0} leg."
[...]
TEMPLATE = TEMPLATE.format('left')

因为您将丢失原始模板。

相反,做

TEMPLATE = "He appears to be limping on his {0} leg."
[...]
leftsentence = TEMPLATE.format('left')
[...]
rightsentence = TEMPLATE.format('right')
[...]
middlesentence = TEMPLATE.format('middle')

随时随地。

于 2013-03-11T10:21:20.167 回答
0

您将不得不使用{0}匹配传递给的第一个参数format

例子:

>>> s = "He appears to be limping on his {0} leg"
>>> s.format("bad")
'He appears to be limping on his bad leg'
于 2013-03-11T10:15:21.900 回答