【问题标题】:Multi dimensional python dictionary [duplicate]多维python字典[重复]
【发布时间】:2015-06-19 12:02:50
【问题描述】:

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

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

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

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

【问题讨论】:

  • 你试过用 Python 做这个吗?
  • 在python中完全相似

标签: python list dictionary


【解决方案1】:

您可以创建一个基于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 的参数的函数来为该键创建一个值。

【讨论】:

【解决方案2】:

除了使用多个字典之外,您还可以使用元组作为键:

my_dict = {}
my_dict[('SYSTEM', 'home', 'GET')] = True

这对你的情况可能有用也可能没用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-19
    • 2014-07-20
    • 2012-08-20
    • 2016-08-05
    • 1970-01-01
    • 2017-03-19
    • 2011-05-10
    • 1970-01-01
    相关资源
    最近更新 更多