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