python学习笔记(递归函数)
博主看了看递归、说的简单点就是程序里面再调用程序本身,或者是方法里面再调研方法本身、或者是函数里面再调研函数本身
用于什么场景呢,博主这里是父子节点排序,父子节点的查询
直接上代码:
#!/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'}]
同样可以用于数据库的查询,先把所有的数据查询出来,通过递归来排序即可
python学习笔记(递归函数)的更多相关文章
- Python学习笔记——递归函数
1.设置递归层数 #设置recursion函数的层数,默认是100层 import sys sys.setrecursionlimit(10000) 2. 阶乘 #定义一个阶乘函数 def facto ...
- Python学习笔记(八)
Python学习笔记(八): 复习回顾 递归函数 内置函数 1. 复习回顾 1. 深浅拷贝 2. 集合 应用: 去重 关系操作:交集,并集,差集,对称差集 操作: 定义 s1 = set('alvin ...
- python学习笔记整理——字典
python学习笔记整理 数据结构--字典 无序的 {键:值} 对集合 用于查询的方法 len(d) Return the number of items in the dictionary d. 返 ...
- VS2013中Python学习笔记[Django Web的第一个网页]
前言 前面我简单介绍了Python的Hello World.看到有人问我搞搞Python的Web,一时兴起,就来试试看. 第一篇 VS2013中Python学习笔记[环境搭建] 简单介绍Python环 ...
- python学习笔记之module && package
个人总结: import module,module就是文件名,导入那个python文件 import package,package就是一个文件夹,导入的文件夹下有一个__init__.py的文件, ...
- python学习笔记(六)文件夹遍历,异常处理
python学习笔记(六) 文件夹遍历 1.递归遍历 import os allfile = [] def dirList(path): filelist = os.listdir(path) for ...
- python学习笔记--Django入门四 管理站点--二
接上一节 python学习笔记--Django入门四 管理站点 设置字段可选 编辑Book模块在email字段上加上blank=True,指定email字段为可选,代码如下: class Autho ...
- python学习笔记--Django入门0 安装dangjo
经过这几天的折腾,经历了Django的各种报错,翻译的内容虽然不错,但是与实际的版本有差别,会出现各种奇葩的错误.现在终于找到了解决方法:查看英文原版内容:http://djangobook.com/ ...
- python学习笔记(一)元组,序列,字典
python学习笔记(一)元组,序列,字典
- Pythoner | 你像从前一样的Python学习笔记
Pythoner | 你像从前一样的Python学习笔记 Pythoner
随机推荐
- LintCode "Backpack"
A simple variation to 0-1 Knapsack. class Solution { public: /** * @param m: An integer m denotes th ...
- xorm使用pgsql的例子
测试表 /* Navicat Premium Data Transfer Source Server : localhost Source Server Type : PostgreSQL Sourc ...
- Ajax方法执行跳转或者加载操作系统报出这样错误Sys.WebForms.PageRequestManagerParserErrorException:如何让解决
当你在代码中使用Response.Redirect(); 或者Response.Write();难免会遇到Sys.WebForms.PageRequestManagerParserErrorExce ...
- C# TextBox中只允许输入数字的方法
1.在Winform(C#)中要实现限制Textbox只能输入数字,一般的做法就是在按键事件中处理, 判断keychar的值.限制只能输入数字,小数点,Backspace,del这几个键.数字0-9所 ...
- MappedByteBuffer读写文件
一. MappedByteBuffer java把文件映射到内存中,避免堆内存产生大对象引起full gc.mappedByteBuffer的读写速度都要超过堆内读写文件的速度 public clas ...
- andriod_入门一
[小技巧] 1.背景图片文件名不能以数字开头,必须以字母开头. 2.如果按钮被背景图被遮住,可以在relativelayout里拖动控件,把背景拖到最上方: [异常] 1. 在用LinearLayou ...
- Java注解教程:自定义注解示例,利用反射进行解析
Java注解能够提供代码的相关信息,同时对于所注解的代码结构又没有直接影响.在这篇教程中,我们将学习Java注解,如何编写自定义注解,注解的使用,以及如何使用反射解析注解. 注解是Java 1.5引入 ...
- 无侵入方面编程-用HttpModule+SoapExtension监视页面执行参数(二)
上一篇文章 "无侵入方面编程-用HttpModule+SoapExtension监视页面执行参数(一)"中,我们实现了监视每个页面的执行情况和调用WebService的简单信息. ...
- 查看Oracle的SID用户名等信息
源地址:http://zhidao.baidu.com/question/681563406501077052.html 用sysdba身份登录 比如 conn /as sysdba 匿名管理员登陆 ...
- linux内核设计与实现--从内核出发
linux内核有两种版本:稳定的和处于开发中的. linux通过一种简单的命名机制来区分稳定的和处于开发中的内核,使用3个或者4个“.”分割的数字来代表不同内核版本. 如:2.6.26.1:第一个数字 ...