自动添加Python dict的密钥

egi*_*dra 5 python

如果它们不存在,我想自动将密钥添加到Python字典中.例如,

a = "a"
b = "b"
c = "c"

dict = {}
dict[a][b] = c # doesn't work because dict[a] doesn't exist
Run Code Online (Sandbox Code Playgroud)

如果密钥不存在,如何自动创建密钥?

ick*_*fay 26

使用collections.defaultdict:

def recursively_default_dict():
    return collections.defaultdict(recursively_default_dict)

my_dict = recursively_default_dict()
my_dict['a']['b'] = 'c'
Run Code Online (Sandbox Code Playgroud)

  • @ X.Jacobs:"稀疏比密集更好.可读性很重要." - [Python的禅宗](https://www.python.org/dev/peps/pep-0020/) (2认同)

Jea*_*tor 5

from collections import defaultdict
d = defaultdict(dict)
d['a']['b'] = 'c'
Run Code Online (Sandbox Code Playgroud)

另外,使用时请小心dict- 它在python中有一个含义:https : //docs.python.org/2/library/stdtypes.html#dict