我有键列表: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)
我感谢您的帮助!
不需要递归。这将起作用:
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)
如果使用递归,则存在超过长列表的最大递归深度的危险,但几乎没有什么好处。