Nik*_*war 6 python string-formatting
有没有办法用dict格式化字符串,但可选择没有键错误?
这很好用:
opening_line = '%(greetings)s %(name)s !!!'
opening_line % {'greetings': 'hello', 'name': 'john'}
Run Code Online (Sandbox Code Playgroud)
但是,让我说我不知道这个名字,我想格式化上面的行只是为了'greetings'.就像是,
opening_line % {'greetings': 'hello'}
Run Code Online (Sandbox Code Playgroud)
即使以下情况,输出也会很好:
'hii %(name)s !!!' # keeping name un-formatted
Run Code Online (Sandbox Code Playgroud)
但这会KeyError在拆包时给出
有什么办法吗?
pio*_*kuc 10
使用defaultdict,这将允许您为字典中不存在的键指定默认值.例如:
>>> from collections import defaultdict
>>> d = defaultdict(lambda: 'UNKNOWN')
>>> d.update({'greetings': 'hello'})
>>> '%(greetings)s %(name)s !!!' % d
'hello UNKNOWN !!!'
>>>
Run Code Online (Sandbox Code Playgroud)