37,717
社区成员
发帖
与我相关
我的任务
分享
list = [
{'id':1, 'title':'t1', 'parent_id':0},
{'id':2, 'title':'t2', 'parent_id':0},
{'id':3, 'title':'t1_1', 'parent_id':1},
{'id':4, 'title':'t1_2', 'parent_id':1},
{'id':5, 'title':'t1_2_1', 'parent_id':4},
{'id':6, 'title':'t2_1', 'parent_id':2},
]
t1
t1_1
t1_2
t1_2_1
t2
t2_1
list = [
{'id':1, 'title':'t1', 'parent_id':0},
{'id':2, 'title':'t2', 'parent_id':0},
{'id':3, 'title':'t1_1', 'parent_id':1},
{'id':4, 'title':'t1_2', 'parent_id':1},
{'id':5, 'title':'t1_2_1', 'parent_id':4},
{'id':6, 'title':'t2_1', 'parent_id':2},
{'id':7, 'title':'t2_2', 'parent_id':2},
{'id':8, 'title':'t2_1_1', 'parent_id':6},
]
可以扩展一下,输出以下格式吗?
t1
├t1_1
└t1_2
└t1_2_1
t2
├t2_1
│ └t2_1_1
└t2_2
list = [
{'id':1,'title':'t1','parent_id':0},
{'id':2,'title':'t2','parent_id':0},
{'id':3,'title':'t1_1','parent_id':1},
{'id':4,'title':'t1_2','parent_id':1},
{'id':5,'title':'t1_2_1','parent_id':4},
{'id':6,'title':'t2_1','parent_id':2},
]
def printList(parentId, tree, spaceStr = ''):
for x in tree:
if x['parent_id'] == parentId:
print(spaceStr, x['title'], sep = '')
printList(x['id'], tree, spaceStr + ' ')
printList(0, list)
list = [
{'id':1, 'title':'t1', 'parent_id':0},
{'id':2, 'title':'t2', 'parent_id':0},
{'id':3, 'title':'t1_1', 'parent_id':1},
{'id':4, 'title':'t1_2', 'parent_id':1},
{'id':5, 'title':'t1_2_1', 'parent_id':4},
{'id':6, 'title':'t2_1', 'parent_id':2},
{'id':7, 'title':'t2_2', 'parent_id':2},
]
print('---------------------------------')
list_tree = []
# 重新排序
def list_order(pid,list):
for x in list:
if pid == x['parent_id']:
list_tree.append(x)
list_order(x['id'],list)
list_order(0,list)
for x in list_tree:
print(x['title'])
这样是可以完成排序,但是不知道怎么计数,可以输出空格对应深度的空格