如果我有一个字符串:
"{0} {1} {1}" % ("foo", "bar")
我希望:
"foo bar bar"
替换令牌必须是什么? (我知道上面的例子不正确;我只是想表达我的目标。)
答案 0 :(得分:50)
"{0} {1} {1}".format("foo", "bar")
答案 1 :(得分:14)
"%(foo)s %(foo)s %(bar)s" % { "foo" : "foo", "bar":"bar"}
是另一个真实但很长的答案。只是为了向您展示关于该问题的另一种观点;)
答案 2 :(得分:6)
Python 3具有完全相同的语法,但%
运算符现在是format
方法。 {2.6}已添加str.format
以平滑过渡到Python 3.有关详细信息,请参阅format string syntax。
>>> '{0} {1} {1}' % ('foo', 'bar')
'foo bar bar'
但是,在旧版本的Python中,无法使用元组来完成。您可以使用括在括号中的映射键来结束。使用映射键时,格式值必须作为dict而不是元组传递。
>>> '%(0)s %(1)s %(1)s' % {'0': 'foo', '1': 'bar'}
'foo bar bar'
当右参数是字典(或其他映射类型)时,字符串中的格式必须包含括号中的映射键,该键将紧接在'%'字符后插入的字典中。映射键从映射中选择要格式化的值。