我要做的是创建一个dict中不存在的键...
我能想到的最好方法是:
>>> d = dict( a = 'test' )
>>> d['a'] = d.get('a', 'default' )
或
>>> if 'a' not in d: d['a'] = 'default'
我遇到的问题只不过是一个小麻烦,但事实上我必须指定'a'
两次。
我正在尝试不定义一个函数,因为这个操作很简单...
我只是想知道,有更好的内置方法吗?
答案 0 :(得分:2)
您可以测试密钥是否尚未存在:
if 'a' not in d:
d['a'] = 'default'
这不会绕过密钥重复(通过使用变量可以很容易地解决),但至少避免设置密钥(如果密钥已经存在)。
如果您的真正目标是访问当前值并设置默认值(如果尚未显示),请使用dict.setdefault()
:
value = d.setdefault('a', 'default')
这将测试密钥,设置默认值,并返回密钥的值,一步完成。
考虑到首先执行默认值表达式,dict.setdefault()
不适合创建默认值很昂贵或有副作用的地方。