从键列表创建嵌套字典

Ron*_*her 2 python

我有键列表:list1 =['info', 'websites', 'site']和最终值=“检查”。我正在尝试构建一个递归函数来创建嵌套字典,如下所示:

dict = {'info': {'websites': {'site' : 'check' } } }
Run Code Online (Sandbox Code Playgroud)

我尝试了以下函数,但我的函数没有得到上述输出:

def nested_dict(keys_list, value, check_dict, size):
    if size != 1:
        print(check_dict)
        check_dict[keys_list[0]] = nested_dict(keys_list[1:], value, check_dict, size-1)
    else:
        print(check_dict)
        check_dict[keys_list[0]] = value
        return check_dict 
Run Code Online (Sandbox Code Playgroud)

我感谢您的帮助!

ala*_*ani 6

不需要递归。这将起作用:

list1 = ['info', 'websites', 'site']

def nested_dict(keys_list, value):
    for key in reversed(keys_list):
        value = {key: value}
    return value

print(nested_dict(list1, 'check'))
Run Code Online (Sandbox Code Playgroud)

给出:

{'info': {'websites': {'site': 'check'}}}
Run Code Online (Sandbox Code Playgroud)

如果使用递归,则存在超过长列表的最大递归深度的危险,但几乎没有什么好处。