我要添加或更新以下代码(如果已存在),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)
我有什么选择?
答案 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)