我想在python中创建一个多维字典,以便我可以使用以下表示法访问它们:
test['SYSTEM']['home']['GET']
test['SYSTEM']['home']['POST']
设置这些值的最简单方法是什么,在其他语言中我可以这样做:
test['SYSTEM']['home']['GET'] = True
test['SYSTEM']['home']['POST'] = False
答案 0 :(得分:5)
您可以创建基于递归collections.defaultdict
的结构,例如
>>> from collections import defaultdict
>>> nesteddict = lambda: defaultdict(nesteddict)
>>>
>>> test = nesteddict()
>>> test['SYSTEM']['home']['GET'] = True
>>> test['SYSTEM']['home']['POST'] = False
>>>
>>> test['SYSTEM']['home']['GET']
True
>>> test['SYSTEM']['home']['POST']
False
每当您访问test
中不存在的密钥时,它将调用传递给nesteddict
参数的函数来创建密钥的值。
答案 1 :(得分:1)
您也可以使用元组作为键,而不是使用多个字典:
my_dict = {}
my_dict[('SYSTEM', 'home', 'GET')] = True
这可能会或可能不会对您的情况有用。