【发布时间】:2020-06-04 19:20:09
【问题描述】:
我尝试并看到了上述问题的多种解决方案,但找不到适合我情况的解决方案。 我有以下字典列表。
input_list = [
{'k0':'v0','level':0,'row':0},
{'k1':'v1','level':1,'row':1},
{'k2':'v2','level':2,'row':2},
{'k3':'v3','level':2,'row':3},
{'k4':'v4','level':1,'row':4},
{'k5':'v5','level':2,'row':5},
{'k6':'v6','level':1,'row':6},
{'k7':'v7','level':0,'row':7},
{'k8':'v8','level':1,'row':8},
{'k9':'v9','level':2,'row':9},
]
我需要通过以下方式将此列表转换为嵌套字典列表
[
{'k0':'v0',
'level':0,
'child':[
{'k1':'v1','level':1,'child':[{'k2':'v2','level':2},
{'k3':'v3','level':2}]},
{'k4':'v4','level':1,'child':[{'k5':'v5','level':2}]},
{'k6':'v6','level':1}
]},
{'k7':'v7',
'level':0,
'child':[{'k8':'v8','level':1,'child':[{'k9':'v9','level':2}]}]}
]
我尝试过的解决方案如下
levels = dict()
for n in input_list:
levels.setdefault(n['level'], []).append(n)
这为我提供了具有分隔级别的字典,但我无法跳过此代码以获得所需的解决方案
任何帮助将不胜感激。谢谢!
【问题讨论】:
-
请用您尝试过的代码更新您的问题。
-
“找不到解决方案” - 您是否尝试制作解决方案?
-
我建议您首先用文字编写用于决定如何处理输入列表中的每个字典的规则。
-
好奇:是什么原因让你需要那种超级复杂的嵌套字典结构?
-
你需要在字符串周围加上引号
标签: python python-2.7 dictionary data-structures