创建默认值=密钥的默认dict?

时间:2015-11-13 15:30:50

标签: python lambda

我想使用defaultdict进行简单的字符串转换。基本上将一些内部字符串转换为用户界面更友好的字符串。但是有些字符串是完全可读的,我宁愿只手动指定需要转换的字符串。所以我尝试用lambda设置一个默认的dict:

>>> dict = defaultdict(lambda key: key)
>>> dict["key"]
Traceback (most recent call last):
  File "<pyshell#3>", line 1, in <module>
    dict["key"]
TypeError: <lambda>() takes exactly 1 argument (0 given)
>>> dict = defaultdict(lambda: key)
>>> dict["key"]

Traceback (most recent call last):
  File "<pyshell#5>", line 1, in <module>
    dict["key"]
  File "<pyshell#4>", line 1, in <lambda>
    dict = defaultdict(lambda: key)
NameError: global name 'key' is not defined

所以看起来简单的lambda不会解决这个问题。有没有办法直接访问这个?有一些方法可以使用get

value = dict.get(key) or key
value = dict.get(key, key)

但是我希望有一些不那么冗长的东西,我可以看到未来的应用程序(例如,如果每个值都应该基于关键计算)。是可能还是我只是误用了defaultdict s?

0 个答案:

没有答案
相关问题