Python 惰性计算
来源:互联网 发布:java中cgi 编辑:程序博客网 时间:2024/06/06 04:50
惰性计算(Lazy evaluation),是指仅仅在真正需要执行的时候才计算表达式的值。充分利用其特性可以带来很多便利。
避免不必要的计算,带来性能的提升。
对于Python中的条件表达式 if x and y,在x为false的情况下y表达式的值将不再计算。而对于if x or y,当x的值为true的时候将直接返回,不再计算y的值。因此编程中可以利用该特性,在 and逻辑中,将小概率发生的条件放在前面或者在or逻辑中,将大概率发生的时间放在前面,有助于性能的提升。节省空间,使得无线循环的数据结构成为可能。
Python中最经典的使用延迟计算的例子就是生成式表达器了,它尽在每次需要计算的时候才通过yield产生所需要的元素。
例:斐波那契数列在Python中实现起来很容易,使用yied对于while True也不会导致其他语言中所遇到的无线循环问题。
def fib(): a,b=0,1 while True: yield a a,b = b,a+b from itertools import islice print list(islice(fib(),5))
阅读全文
0 0
- Python 惰性计算
- python generator 的惰性计算
- 惰性计算
- Python的闭包(Closure)与惰性计算(Lazy Evaluation)
- macro与惰性计算
- 惰性计算实验
- Python惰性序列
- 惰性计算(lambda完美实现)
- 聊一聊iOS的惰性计算
- 惰性求值和yield-Python
- Python学习之惰性求值
- python正则表达式惰性匹配
- 关于Python的惰性求值与惰性序列
- 惰性
- 惰性
- 惰性
- 惰性
- 关于对lambda表达式进行惰性计算
- 使用Spring Mail API发送邮件
- 创建Core,并对索引进行CRUD操作
- GET和POST的区别
- 【JavaScript 基础】06 对象
- Android高德地图导航or语音播报
- Python 惰性计算
- AssetBundle5.0 打包,下载到本地,加载
- Android 一个灵活的图片 Gridview 布局
- SAP ERP接口解决方案实践
- 设计模式的应用场景(3)--创建者模式
- [Alibaba-ARouter] 简单好用的Android页面路由框架
- Python3学习(20)--第三方模块pymysql的安装及使用
- Java NIO系列教程(8):SocketChannel
- 大小端和网络子节序