我有以下代码来添加或更新,如果已经存在,则在以下代码中使用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)
我有什么选择?
您可以使用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)