我正在寻找一种能够从字典中获取值的简单方法,如果该值不存在,则返回用户传入的键。
例如。:
>>> lookup = defaultdict(magic)
>>> print lookup['DNE']
'DNE'
>>> print lookup.get('DNE')
'DNE'
>>> print lookup['exists']
'some other value'
>>> print lookup.get('exists')
'some other value'
这些将始终是字符串,但是基本上我正在创建一个语言映射,并且需要一种简单的方法来获取值,如果存在,则返回,否则返回键。
有没有简单的方法可以做到这一点?还是我应该扩展dict并手动执行。
最佳答案
应该可以使用lambda函数
from collections import defaultdict
a = defaultdict((lambda : 'DNE'))
编辑:对不起,我读错了问题。正如上面的评论所说。要走的路是扩展dict类。
>>> class mydict(dict):
... def __missing__(self,key):
... return key
...
>>> a = mydict()
>>> a['asd']
'asd'