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

Pat*_* B. 2 python dictionary

我有以下代码来添加或更新,如果已经存在,则在以下代码中使用dict()-value dict:

if id not in self.steps:
    self.steps[ id ] = step
else:
    self.steps[ id ].update(step)
Run Code Online (Sandbox Code Playgroud)

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

self.steps.get( id ).update(step)
Run Code Online (Sandbox Code Playgroud)

我有什么选择?

Ana*_*mar 5

您可以使用a 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}})
Run Code Online (Sandbox Code Playgroud)