python - 从键列表创建嵌套字典

我有键列表: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/

相关文章:

r - 如何提取R中的第一个字符串

r - 提取特定格式的部分字符串

ios - 通过 FaSTLane "the server responded with statu

ruby - Rails 将数组合并为数组的数组

python - Julia 代码没有完成而 Python 代码完成了

python - 对具有更高优先级正数的绝对值的整数列表进行排序

perl - 为什么 Scalar::Util::Numeric 安装不正确?

android - 我正在尝试使用安全参数,但是当我将依赖项添加到项目级别 build.gradle

haskell - 我可以说 Monad 使将某些类型视为同构成为可能吗?

node.js - 超时错误 - MongoServerSelectionError:连接 ECON