python学习笔记(递归函数)

博主看了看递归、说的简单点就是程序里面再调用程序本身,或者是方法里面再调研方法本身、或者是函数里面再调研函数本身

用于什么场景呢,博主这里是父子节点排序,父子节点的查询

直接上代码:

 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'}]

同样可以用于数据库的查询,先把所有的数据查询出来,通过递归来排序即可

原文地址:https://www.cnblogs.com/cllovewxq/p/6016612.html