Python:具有任意数量级别的嵌套字典

时间:2014-07-26 20:36:05

标签: python dictionary

我很欣赏这个看似简单的任务的帮助:编写一个函数,它将获取一个元组并返回一个嵌套字典,元组中的每个连续值都是字典中连续更深层'层'中的一个键。登记/> 指定彩虹底部的最终“值”(例如10,在下面的示例中)。

所以从元组('cat', 'dog', 'bone')开始,我的目标是作为输出:

{'cat':{'dog':{'bone':10}}}

并为任意长度的元组执行此操作。

3 个答案:

答案 0 :(得分:2)

这是怎样的终极价值'指定完全?

在下面的代码中,它由命名参数指定:

def nested_dict(tuple, value=10):
    if len(tuple) is 1:
        return { tuple[0] : value }
    return { tuple[0] : nested_dict(tuple[1:], value=value) }

答案 1 :(得分:0)

t = ('cat','dog','bone')
answer = {}
temp = answer
for key in t[:-1]:
    if key not in temp:
        temp[key] = {}
    temp = temp[key]
temp[t[-1]] = 10

输出:

In [21]: answer
Out[21]: {'cat': {'dog': {'bone': 10}}}

答案 2 :(得分:0)

我的尝试:

>>> t = ('cat', 'dog', 'bone')
>>> last = {t[-1]: 10}
>>> for e in t[1::-1]:
...     last = {e: last}
... 
>>> last
{'cat': {'dog': {'bone': 10}}}