字典 - 如果密钥不存在,如何更新或创建值?

时间:2015-08-12 10:54:07

标签: python dictionary

我要添加或更新以下代码(如果已存在),dict()中的dict - 值:

if id not in self.steps:
    self.steps[ id ] = step
else:
    self.steps[ id ].update(step)

这很好用,但我想知道我是否可以简化代码。我尝试使用get,但是如果key不存在,get似乎返回了元素的副本(或者只是一个新元素,与缺少的键无关?)。

self.steps.get( id ).update(step)

我有什么选择?

2 个答案:

答案 0 :(得分:5)

您可以使用collections.defaultdict,内部值为dict。示例 -

>>> from collections import defaultdict
>>> d = defaultdict(dict)
>>> d1 = {1:2,3:4}
>>> d['id1'].update(d1)
>>> d
defaultdict(<class 'dict'>, {'id1': {1: 2, 3: 4}})

答案 1 :(得分:4)

d={}
d.setdefault(i,0)
d[i]=somevalue

您可以使用setdefault删除if else条件。

More info here