博主看了看递归、说的简单点就是程序里面再调用程序本身,或者是方法里面再调研方法本身、或者是函数里面再调研函数本身
用于什么场景呢,博主这里是父子节点排序,父子节点的查询
直接上代码:
#!/usr/bin/env python
# -*- coding: utf-8 -*- raw = [{"id": "", "name": "A", "group_id": 0},
{"id": "", "name": "B", "group_id": 0},
{"id": "1-1", "name": "A1", "group_id": ""},
{"id": "", "name": "C", "group_id": 0},
{"id": "2-1", "name": "B1", "group_id": ""}] new = [] def get_data(n):
for r in raw:
if r["group_id"] == n:
r_id = r["id"]
new.append(r)
get_data(r_id)
return new print get_data(0)
这里是一个列表、列表有五个字典,group_id来划分节点关系
本身是乱序的,通过递归实现了父子节点的排序,打印的内容如下:
[{'group_id': 0, 'id': '', 'name': 'A'}, {'group_id': '', 'id': '1-1', 'name': 'A1'}, {'group_id': 0, 'id': '', 'name': 'B'}, {'group_id': '', 'id': '2-1', 'name': 'B1'}, {'group_id': 0, 'id': '', 'name': 'C'}]
同样可以用于数据库的查询,先把所有的数据查询出来,通过递归来排序即可