零基础学python-18.3 递归函数vs循环和递归处理任意结构
来源:互联网 发布:淘宝中老年毛呢外套 编辑:程序博客网 时间:2024/06/07 14:18
这一章节我们来讨论两个话题:递归函数vs循环和递归处理任意结构
1.递归函数vs循环
再次沿用上一章节的递归代码:
>>> def test (aList):if not aList:return 0else :return aList[0]+test(aList[1:])>>> a=[1,2,3,4,5]>>> test(a)15
同时,我们也用循环实现上面的功能:
>>> def test2(aList):sumNum=0while aList:sumNum+=aList[0]aList=aList[1:]return sumNum>>> a=[1,2,3,4,5]>>> test2(a)15>>>
功能上两份代码都是一致的,但是从可读性上,无疑使用循环更加能够理解,而且迭代的速度在python里面是非常快的,也许性能比递归更加快
2.递归处理任意结构
我们找出一些极端例子:
>>> def sumTree(aList):tot=0for item in aList:if not isinstance(item,list):tot+=itemelse:tot+=sumTree(item)return tot>>> a=[[1,[2,[3,[4,[5,6],7],8],9]]]>>> sumTree(a)45>>>
上面是一个比较极端的例子,在时间运用python的过程中一般不会出现
3.递归的应用场景:
1)树的遍历
2)导入链的遍历
对于上面的两种情况,递归还是非常好使的
总结:这一章节主要结束了递归函数vs循环、递归处理任意结构和递归的应用场景
这一章节就说到这里,谢谢大家
------------------------------------------------------------------
点击跳转零基础学python-目录
0 0
- 零基础学python-18.3 递归函数vs循环和递归处理任意结构
- 零基础学python-18.2 递归函数与分解递归函数的执行步骤
- Python基础-递归和函数对象
- 零基础学python-12.1 while循环
- 零基础学python-12.3 for循环
- Python基础-函数-递归函数
- python函数和递归
- [零基础学python]网站的结构
- 零基础学python-3.4 模块结构
- 循环 vs 递归
- 零基础学python-15.4 函数的多态vs对象的多态
- [零基础学python]重回函数
- 零基础学python-15.2 分解函数
- 零基础学数据结构-----------探讨递归转化为非递归(3)
- 用循环和递归处理迷宫问题
- 零基础学python-13.5 多迭代器vs单迭代器
- [零基础学python]变量和参数
- 零基础 学Python
- 浅析Spring中的注解
- leetcode:count and say
- Elasticsearch-PHP 快速开始
- Unity脚本中使用NGUI的预先准备
- C++STL 迭代器
- 零基础学python-18.3 递归函数vs循环和递归处理任意结构
- Hibernate: Understanding Lazy Fetching
- php实例-注册&登录
- 文章标题
- 提取神经网络数学表达式
- 实现tab切换效果
- postgreSQL问题一解答
- window 与centos 系统之间共享文件
- PowerDesigner表创建脚本双引号问题