如果我有一个字符串列表,其中一些包含{}
中包含的代码,那么以后可以在这些字符串上使用format()
吗?稍后格式化字符串?
如果我有这种情况,我想写一些关于身体损伤的风味文字,例如"He appears to be limping on his {1} leg."
,但是我想根据所讨论的腿,用“左”或“右”格式化该字符串。
如果我有一个字符串列表,其中一些包含{}
中包含的代码,那么以后可以在这些字符串上使用format()
吗?稍后格式化字符串?
如果我有这种情况,我想写一些关于身体损伤的风味文字,例如"He appears to be limping on his {1} leg."
,但是我想根据所讨论的腿,用“左”或“右”格式化该字符串。
确定这是可能的。只是存储琴弦,后来他们打电话.format()
:
>>> someformat = 'Hello {}!'
>>> someformat
'Hello {}!'
>>> print someformat.format('World')
Hello World!
.format()
只是一个字符串的方法,只有当你调用该方法将字符串被解释为一个模板。就像.strip()
和.join()
一样,您可以在您选择的时间在任何字符串对象上调用该方法。
您将不得不使用{0}
来匹配传递给format
的第一个参数。
例子:
>>> s = "He appears to be limping on his {0} leg"
>>> s.format("bad")
'He appears to be limping on his bad leg'
您可以使用'{1}'就好:'s ='他似乎在他的{1}腿上进行链接“;打印s.format(无,'坏')'。 – 2013-03-11 10:23:32
@MartijnPieters是的,有一个kludge :) – ATOzTOA 2013-03-11 10:24:09
关键是没有什么东西强迫你使用传递给'.format()'方法的所有参数,你的答案在细节上有点太稀疏了。 – 2013-03-11 10:25:54
您可以拨打.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')
哪里,只要你需要。
''中腿'? 'o.O' – Volatility 2013-03-11 10:27:30
: - }试图搞笑... – glglgl 2013-03-11 10:33:12
我相信自己尝试并找出它会减少对SE的写作:) – 2013-03-11 10:15:23