Python如何将拆分得到的键列表转换为多层嵌套字典(map)
Python实现分隔键转嵌套字典的方法
直接用原生Python从内向外逐层构造即可,无需第三方依赖:
# 初始键值对 key = "a-b-c-d" value = 10 # 按"-"拆分键得到列表 my_list = key.split("-") # 倒序遍历键列表,逐层包裹生成嵌套字典 my_dict = value for k in reversed(my_list): my_dict = {k: my_dict} # 验证结果 print(my_dict['a']['b']['c']['d'])
运行代码后会输出10,最终得到的my_dict结构和预期完全一致:{'a': {'b': {'c': {'d': 10}}}}。
执行逻辑
倒序遍历会从拆分列表的最内层键开始处理:
- 第一次遍历拿到键
d,生成最内层结构{'d': 10} - 第二次遍历拿到键
c,将上一步结果作为值包裹,得到{'c': {'d': 10}} - 第三次遍历拿到键
b,继续包裹得到{'b': {'c': {'d': 10}}} - 最后一次遍历拿到最外层键
a,包裹后即为目标嵌套结构。
这个方法不受键拆分后的层数限制,不管嵌套多少层都可以正常生成。
内容的提问来源于stack exchange,提问作者Amit Kumar
相关产品推荐
相关产品推荐

