这段代码有什么问题?
dic = { 'fruit': 'apple', 'place':'table' }
test = "I have one {fruit} on the {place}.".format(dic)
print(test)
>>> KeyError: 'fruit'
答案 0 :(得分:29)
答案 1 :(得分:7)
自Python 3.2以来有''.format_map()
function:
test = "I have one {fruit} on the {place}.".format_map(dic)
优点是它接受任何映射,例如,具有__getitem__
方法的类动态生成值,或collections.defaultdict
允许您使用不存在的键。
可以在旧版本上进行模拟:
from string import Formatter
test = Formatter().vformat("I have one {fruit} on the {place}.", (), dic)
答案 2 :(得分:0)
您也可以使用以下代码:
dic = { 'fruit': 'apple', 'place':'table' }
print "I have one %(fruit)s on the %(place)s." % dic
如果您想了解有关格式方法使用的更多信息:http://docs.python.org/library/string.html#formatspec