在下面的代碼中,我試圖獲得一個不存在於mydict
中的密鑰。因此,在我的get方法中,我構造了字典,但在輸出中看不到相同的內容,我是什麼?做錯了python字典獲取方法使用新密鑰
>>> mydict={'aa':1}
>>> if mydict.get('PROF',dict(PROF=dict(students=dict()))):
... print mydict['PROF']
...
{'aa': 1}
在下面的代碼中,我試圖獲得一個不存在於mydict
中的密鑰。因此,在我的get方法中,我構造了字典,但在輸出中看不到相同的內容,我是什麼?做錯了python字典獲取方法使用新密鑰
>>> mydict={'aa':1}
>>> if mydict.get('PROF',dict(PROF=dict(students=dict()))):
... print mydict['PROF']
...
{'aa': 1}
In [658]: mydict={'aa':1}
...: mydict['PROF'] = mydict.get('PROF',dict(PROF=dict(students=dict())))
...: print mydict['PROF']
{'PROF': {'students': {}}}
dict.get
通常用作if-statement
的替代:
In [673]: d={}
...: if not d.get('b'):
...: d['b']=0
...: d['b']+=1
...: print d
{'b': 1}
In [674]: d={}
...: d['b']=d.get('b', 0)+1
...: print d
{'b': 1}
而在你的情況下,最好使用setdefault
作爲@msvalkon提到。
下面是人們在評論中提出的dict.setdefault
方法的示例,但未將其寫爲答案。
>>> mydict = {'aa': 1}
>>> mydict.setdefault("PROF", dict(students=dict()))
{'students': {}}
>>> mydict
{'aa': 1, 'PROF': {'students': {}}}
>>>
setdefault(k, default)
有點像get(k, default)
但不是返回默認值,但它確實dict[k] = default
。
此代碼導致「KeyError」。你可能正在尋找'setdefault'。 – filmor
你沒有在'mydict'中插入'PROF'。使用'setdefault'而不是'get' – mshsayem