文档章节

零基础学python-18.3 递归函数vs循环和递归处理任意结构

raylee2015
 raylee2015
发布于 2015/10/21 08:10
字数 384
阅读 2
收藏 0
点赞 0
评论 0

这一章节我们来讨论两个话题:递归函数vs循环和递归处理任意结构

1.递归函数vs循环

再次沿用上一章节的递归代码:

>>> def test (aList):
	if not aList:
		return 0
	else :
		return aList[0]+test(aList[1:])

	
>>> a=[1,2,3,4,5]
>>> test(a)
15

同时,我们也用循环实现上面的功能:

>>> def test2(aList):
	sumNum=0
	while aList:
		sumNum+=aList[0]
		aList=aList[1:]
	return sumNum

>>> a=[1,2,3,4,5]
>>> test2(a)
15
>>>

功能上两份代码都是一致的,但是从可读性上,无疑使用循环更加能够理解,而且迭代的速度在python里面是非常快的,也许性能比递归更加快


2.递归处理任意结构

我们找出一些极端例子:

>>> def sumTree(aList):
	tot=0
	for item in aList:
		if not isinstance(item,list):
			tot+=item
		else:
			tot+=sumTree(item)
	return tot

>>> a=[[1,[2,[3,[4,[5,6],7],8],9]]]
>>> sumTree(a)
45
>>>

上面是一个比较极端的例子,在时间运用python的过程中一般不会出现


3.递归的应用场景:

1)树的遍历

2)导入链的遍历

对于上面的两种情况,递归还是非常好使的


总结:这一章节主要结束了递归函数vs循环、递归处理任意结构和递归的应用场景

这一章节就说到这里,谢谢大家

------------------------------------------------------------------

点击跳转零基础学python-目录

 



版权声明:本文为博主原创文章,未经博主允许不得转载。

本文转载自:http://blog.csdn.net/raylee2007/article/details/48548901

共有 人打赏支持
raylee2015
粉丝 6
博文 265
码字总数 44224
作品 0
江门
python语法小细节及小定义(一)

首先,Python是强类型语言,动态类型语言。 那么什么是强类型语言?就是数据类型非常固定的语言,例如说python中的str类型数据和int类型数据不能互相作用。而c和js就是弱类型语言。 动态类型...

戴千岩
2017/09/26
0
0
他学习一年Python找不到工作,大佬都说你别再学Python了!

都说,滴水穿石非一日之功。然而有些人即使奋斗一辈子也比不上别人一年,别人学习一年比不得你学习一个月。其中缘由,有些人看了大半辈子还没看明白。 即使Python这么火,为何你学习一年的P...

柯西带你学编程
06/06
0
0
Python3 与 NetCore 基础语法对比(Function专栏)

Jupyter最新排版:https://www.cnblogs.com/dotnetcrazy/p/9175950.html 昨晚开始写大纲做demo,今天牺牲中午休息时间码文一篇,希望大家点点赞 O(∩_∩)O NetCore:https://github.com/lota...

毒逆天
06/15
0
0
程序员必备,快速学习 Python 的全套14张思维导图(附高清版下载)

后台回复关键词 思维导图 可获取本文中的高清思维导图(PDF版) ML & AI∣一个有用的公众号 长按,识别二维码,加关注 获取更多精彩文章

micf435p6d221ssdld2
05/23
0
0
Python函数式编程指南(一):概述

这大概算是Python最难啃的一块骨头吧。在我 Python生涯的这一年里,我遇到了一些Pythoner,他们毫无例外地完全不会使用函数式编程(有些人喜欢称为Pythonic),比如,从来不会 传递函数,不知...

icheer
2012/05/31
0
0
笨办法学 Python · 续 练习 19:改善性能

练习 19:改善性能 原文:Exercise 19: Improving Performance 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 这几乎完全是视频练习,其中我演示了如何改进你至今为止编写的代码的性...

apachecn_飞龙
2017/08/09
0
0
Python基础班每日整理(四)

02Python基础day06 字符串的定义 字符串就是一串字符,用一对儿单引号或者双引号括起来 字符串切片 切片就是使用索引值,从一个大的字符串中切出小的字符串,适用于字符串、元组、列表。基本...

我是小谷粒
07/02
0
0
用python玩转数据|基本语法

比较运算符 打开文件 模块:一个完整的python文件即是一个模块 包:一个有层次的文件目录结构 库:一组具有相关功能的模块的集合 题目1:接收键盘输入姓、名,然后分解输出 输出: 第一单元小...

darlingwood2013
2017/03/08
0
0
python 模板实现-引擎的编写(有时间试一下)

关于简介和模板问题请在参考文档查看 参考文档: 1.模板的编写:https://blog.csdn.net/MageeLen/article/details/68920913 一、引擎的编写 1.Templite 类 模板引擎的核心就是这个Templite类...

xiaoge2016
05/10
0
0
人人都能学会的python编程教程(基础篇)完整版

人人都能学会的python编程教程1:第一行代码 人人都能学会的python编程教程2:数据类型和变量 人人都能学会的python编程教程3:字符串和编码 人人都能学会的python编程教程4:关系运算符与循...

编程老司机
05/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

微信小程序Java登录流程(ssm实现具体功能和加解密隐私信息问题解决方案)

文章有不当之处,欢迎指正,如果喜欢微信阅读,你也可以关注我的微信公众号:好好学java,获取优质学习资源。 一、登录流程图 二、小程序客户端 doLogin:function(callback = () =>{}){let ...

公众号_好好学java
39分钟前
0
1
流利阅读笔记28-20180717待学习

“我不干了!” 英国脱欧大臣递交辞呈 雪梨 2018-07-17 1.今日导读 7 月 6 日,英国政府高官齐聚英国首相的官方乡间别墅——契克斯庄园,讨论起草了一份关于英国政府脱欧立场的白皮书。可是没...

aibinxiao
今天
7
0
OSChina 周二乱弹 —— 理解超算排名这个事,竟然超出了很多人的智商

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @-冰冰棒- :分享Ed Sheeran/Beyoncé的单曲《Perfect Duet (with Beyoncé)》 《Perfect Duet (with Beyoncé)》- Ed Sheeran/Beyoncé 手机...

小小编辑
今天
180
7
Android 获取各大音乐平台的真实下载地址

废话 电脑使用谷歌浏览器或者QQ浏览器的时候。。。。。。。说不清楚,还是看图吧 大概意思就是,只要网页上需要播放,只要能播放并且开始播放,这个过程就肯定会请求到相关的音乐资源,然后就...

她叫我小渝
今天
0
0
shell中的函数、shell中的数组、告警系统需求分析

shell中的函数 格式: 格式: function f_name() { command } 函数必须要放在最前面 示例1(用来打印参数) 示例2(用于定义加法) 示例3(用于显示IP) shell中的数组 shell中的数组1 定义数...

Zhouliang6
今天
2
0
用 Scikit-Learn 和 Pandas 学习线性回归

      对于想深入了解线性回归的童鞋,这里给出一个完整的例子,详细学完这个例子,对用scikit-learn来运行线性回归,评估模型不会有什么问题了。 1. 获取数据,定义问题     没有...

wangxuwei
今天
1
0
MAC安装MAVEN

一:下载maven压缩包(Zip或tar可选),解压压缩包 二:打开终端输入:vim ~/.bash_profile(如果找不到该文件新建一个:touch ./bash_profile) 三:输入i 四:输入maven环境变量配置 MAVEN_HO...

WALK_MAN
今天
0
0
33.iptables备份与恢复 firewalld的9个zone以及操作 service的操作

10.19 iptables规则备份和恢复 10.20 firewalld的9个zone 10.21 firewalld关于zone的操作 10.22 firewalld关于service的操作 10.19 iptables规则备份和恢复: ~1. 保存和备份iptables规则 ~2...

王鑫linux
今天
2
0
大数据教程(2.11):keeperalived+nginx高可用集群搭建教程

上一章节博主为大家介绍了目前大型互联网项目的系统架构体系,相信大家应该注意到其中很重要的一块知识nginx技术,在本节博主将为大家分享nginx的相关技术以及配置过程。 一、nginx相关概念 ...

em_aaron
今天
1
1
Apache Directory Studio连接Weblogic内置LDAP

OBIEE默认使用Weblogic内置LDAP管理用户及组。 要整理已存在的用户及组,此前办法是导出安全数据,文本编辑器打开认证文件,使用正则表达式获取用户及组的信息。 后来想到直接用Apache Dire...

wffger
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部