我正在寻找一种能够从字典中获取值的简单方法,如果该值不存在,则返回用户传入的键。

例如。:

>>> 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'

10-08 11:12