我有键列表:list1 =['info', 'websites', 'site']
和最终值 = 'check'。
我正在尝试构建一个递归函数来创建一个嵌套字典,如下所示:
dict = {'info': {'websites': {'site' : 'check' } } }
我尝试了以下函数,但我的函数没有得到上面的输出:
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
感谢您的帮助!
最佳答案
不需要递归。这将起作用:
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'))
给出:
{'info': {'websites': {'site': 'check'}}}
如果您使用递归,则存在超过长列表的最大递归深度的危险,而这几乎没有好处。
https://stackoverflow.com/questions/69615852/