Python 字典字典-如果键还不存在,如何更新或创建值?

Python 字典字典-如果键还不存在,如何更新或创建值?,python,dictionary,Python,Dictionary,我有以下代码要添加或更新,dict中的dict()值(如果已经存在): if id not in self.steps: self.steps[ id ] = step else: self.steps[ id ].update(step) 这很好,但我想知道是否可以简化代码。我尝试使用get,但如果key不存在,get似乎会返回元素的副本(或者只是一个新元素,与缺少的key不关联?) self.steps.get( id ).update(step) 我有什么选择 d={}

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

if id not in self.steps:
    self.steps[ id ] = step
else:
    self.steps[ id ].update(step)
这很好,但我想知道是否可以简化代码。我尝试使用
get
,但如果key不存在,get似乎会返回元素的副本(或者只是一个新元素,与缺少的key不关联?)

self.steps.get( id ).update(step)
我有什么选择

d={}
d.setdefault(i,0)
d[i]=somevalue
您可以使用
setdefault
删除
if-else
条件

您可以使用a,内部值如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}})
>>从集合导入defaultdict
>>>d=默认dict(dict)
>>>d1={1:2,3:4}
>>>d['id1'].更新(d1)
>>>d
defaultdict(,{'id1':{1:2,3:4})

所以在我的例子中,我会做
d.setdefault(I,{})
?现在我得到了它,
setdefault
替换了我的
get
。谢谢。如果您不介意,请更新您的答案,以显示
get
应为
setdefault
以执行我想要的操作。猜测
setdefault
是否通过创建尚不存在的元素而获得
get
,这并不简单。3次向下投票?普通人,怎么了?发发慈悲并解释原因吧?使用
defaultdict
比使用
setdefault()
(这是一个实际的get)要清楚得多。谢谢