博主看了看递归、说的简单点就是程序里面再调用程序本身,或者是方法里面再调研方法本身、或者是函数里面再调研函数本身
用于什么场景呢,博主这里是父子节点排序,父子节点的查询
直接上代码:
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'}]
同样可以用于数据库的查询,先把所有的数据查询出来,通过递归来排序即可