【发布时间】:2018-12-20 15:11:25
【问题描述】:
我有一个带有 id 链接的字典列表:
[
{ 'id': 1, 'parent_id': None, 'title': '1', },
{ 'id': 3, 'parent_id': 1, 'title': '1.1', },
{ 'id': 5, 'parent_id': 4, 'title': '1.2.1', },
{ 'id': 2, 'parent_id': None, 'title': '2', },
{ 'id': 4, 'parent_id': 1, 'title': '1.2', }
]
我需要创建一个如下所示的树对象:
[
{ 'id': 1,'title': '1', 'children': [
{'id': 3, 'title': '1.1', 'children': []},
{'id': 4, 'title': '1.2', 'children': [
{'id': 5, 'title': '1.2.1', 'children': []},
]},
]},
{ 'id': 2, 'title': '2', 'children': []},
]
我如何在 Python 中做到这一点?感谢您的帮助!
UPD 我试过这个,但我不知道如何编写在 2 级以上工作的代码。
for element in elements_list:
if not element.get('parent_id'):
menu.append({
'id': element.get('id'),
'title': element.get('title'),
'children': []
})
else:
for item in menu:
if item.get('id') == element.get('parent_id'):
item.get('children').append({
'title': element.get('title'),
'children': []
})
【问题讨论】:
标签: python dictionary recursion