Nic*_*ner 42 python string-formatting
如果我有一个像这样的字符串:
"{0} {1} {1}" % ("foo", "bar")
Run Code Online (Sandbox Code Playgroud)
而且我要:
"foo bar bar"
Run Code Online (Sandbox Code Playgroud)
替换令牌必须是什么?(我知道上面的例子不正确;我只是想表达我的目标.)
mou*_*uad 57
"{0} {1} {1}".format("foo", "bar")
Run Code Online (Sandbox Code Playgroud)
Ser*_*gic 15
"%(foo)s %(foo)s %(bar)s" % { "foo" : "foo", "bar":"bar"}
Run Code Online (Sandbox Code Playgroud)
是另一个真实但很长的答案.只是为了向您展示关于该问题的另一种观点;)
Python 3具有完全相同的语法,除了%
运算符现在是format
方法.str.format
也已添加到Python 2.6+以平滑过渡到Python 3.有关更多详细信息,请参阅格式字符串语法.
>>> '{0} {1} {1}' % ('foo', 'bar')
'foo bar bar'
Run Code Online (Sandbox Code Playgroud)
但是,在旧版本的Python中,无法使用元组来完成它.您可以使用括在括号中的映射键来结束.使用映射键时,格式值必须作为dict而不是元组传入.
>>> '%(0)s %(1)s %(1)s' % {'0': 'foo', '1': 'bar'}
'foo bar bar'
Run Code Online (Sandbox Code Playgroud)
从Python手册:
当右参数是字典(或其他映射类型)时,字符串中的格式必须包含括号内的映射键,该字符串紧跟在'%'字符后面插入的字典中.映射关键字从映射中选择要格式化的值.