格式化字典中的一些字符串

时间:2014-02-28 12:41:20

标签: python string templates dictionary format

我想做类似以下的事情,我不知道是否可能:

d={
'error': ' Please insert a valid (%s) name'
'required': ' Please insert your (%s) name'
}

d1 = d % 'first'
d2 = d % 'last'

所以基本上我想要类似字典模板的东西。是否可以实现这一目标?这样做会更优雅,并且尊重DRY原则。

预期结果

d1 == {'required': ' Please insert your (first) name',
       'error': ' Please insert a valid (first) name'}

d2 == {'required': ' Please insert your (last) name',
       'error': ' Please insert a valid (last) name'}

1 个答案:

答案 0 :(得分:2)

如何定义生成字典的函数?

>>> def make_msg_dict(part):
...     return {
...         'error': ' Please insert a valid (%s) name' % part,
...         'required': ' Please insert your (%s) name' % part,
...     }
...
>>> d1 = make_msg_dict('first')
>>> d2 = make_msg_dict('last')
>>> d1
{'required': ' Please insert your (first) name',
 'error': ' Please insert a valid (first) name'}
>>> d2
{'required': ' Please insert your (last) name',
 'error': ' Please insert a valid (last) name'}