多维python字典

时间:2015-06-19 12:02:50

标签: python list dictionary

我想在python中创建一个多维字典,以便我可以使用以下表示法访问它们:

test['SYSTEM']['home']['GET']
test['SYSTEM']['home']['POST']

设置这些值的最简单方法是什么,在其他语言中我可以这样做:

test['SYSTEM']['home']['GET'] = True
test['SYSTEM']['home']['POST'] = False

2 个答案:

答案 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

这可能会或可能不会对您的情况有用。