Python计算斐波那契数列用lambda方法与def实现效率哪个高?,斐波那契lambda,测试代码如下:pytho
Python计算斐波那契数列用lambda方法与def实现效率哪个高?,斐波那契lambda,测试代码如下:pytho
测试代码如下:
python
import timedef fibonacci(n): if n < 2: return n return fibonacci(n - 2) + fibonacci(n - 1)aaa = time.time()print fibonacci(35)print time.time() - aaaprint '--------------------------------'fib=lambda n:1 if n<=2 else fib(n-1)+fib(n-2)bbb = time.time()print fib(35)print time.time() - bbb
我本机的测试结果如下:
92274656.27800011635--------------------------------92274654.00600004196
def定义函数递归的调用会有开销,那么lambda为什么会快一些呢?
因为两个代码不等价:def的条件是 n < 2 ,而lambda的条件是 n <= 2 。
这直接导致了递归展开的时候lambda可以少展开一层,所以速度基本上是2倍的差距。
编橙之家文章,
相关内容
- python正则匹配的方法,求高手帮我修改下源码,python源码
- Python cmd模块多线程下载网页卡顿请高手帮忙指点下,
- 请问flask运行显示TypeError错误 'Config' object is not callabl
- Python3N维向量操作求教,python3n维向量,想用 Python 3
- 请教关于python如何调用npm run build方法是什么?,pytho
- 求一个最好的python打包工具,最好的python打包,py2exe最新
- subprocess.Popen无法获取python--version数据是为什么,,尝试
- Flask设置cookie源码不解求指教,flaskcookie,看了官网上的
- 请问Python与PHP在部署web文件操作上有什么不同,python
- 分析网页内容是否可以被python爬虫抓取的判断应该怎么
评论关闭