声明一个空的字典,我这样做:
mydict = dict()
声明一个空字典的空字典,我也可以这样做:
mydictofdict = dict()
需要时添加字典:
mydict1 = dict()
mydictofdict.update({1:mydict1})
并在需要时对其中的元素进行操作:
mydictofdict[1].update({'mykey1':'myval1'})
这样做是否符合Python的风格?有没有更好的方法来实现它?
声明一个空的字典,我这样做:
mydict = dict()
声明一个空字典的空字典,我也可以这样做:
mydictofdict = dict()
需要时添加字典:
mydict1 = dict()
mydictofdict.update({1:mydict1})
并在需要时对其中的元素进行操作:
mydictofdict[1].update({'mykey1':'myval1'})
这样做是否符合Python的风格?有没有更好的方法来实现它?
您可以使用collections.defaultdict来创建一个嵌套字典,其中您可以定义一个字典的初始值。
from collections import defaultdict
#Use the initial value as a dictionary
dct = defaultdict(dict)
dct['a']['b'] = 'c'
dct['d']['e'] = 'f'
print(dct)
defaultdict(<class 'dict'>, {'a': {'b': 'c'}, 'd': {'e': 'f'}})
你可以用{}
创建一个空字典:
d = {}
你可以像第一种方法那样创建字典值为字典的字典:
d = {
1: {},
2: {}
}
[]
修改字典的值:d = {1: 0}
d[1] = 1
d
{1: 1}
类似于嵌套字典:
d = {
1: {},
2: {}
}
d[1][4] = 5
d
{1: {4: 5}, 2: {}}
如果你想根据键列表创建一个字典嵌套字典,你可以使用字典推导式:
keys = [1,2,3,4,5]
d = {key: {} for key in keys}
d
{1: {}, 2: {}, 3: {}, 4: {}, 5: {}}
mydictofdict[1] = mydict1
和mydictofdict[1]['mykey1'] = 'myval1'
呢?如果你打算更新任意数量的值,那么这正是update()
最初设计的目的。 - meowgoesthedog