Python 惰性计算

来源:互联网 发布:java中cgi 编辑:程序博客网 时间:2024/06/06 04:50

惰性计算(Lazy evaluation),是指仅仅在真正需要执行的时候才计算表达式的值。充分利用其特性可以带来很多便利。

  1. 避免不必要的计算,带来性能的提升。
    对于Python中的条件表达式 if x and y,在x为false的情况下y表达式的值将不再计算。而对于if x or y,当x的值为true的时候将直接返回,不再计算y的值。因此编程中可以利用该特性,在 and逻辑中,将小概率发生的条件放在前面或者在or逻辑中,将大概率发生的时间放在前面,有助于性能的提升。

  2. 节省空间,使得无线循环的数据结构成为可能。
    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))
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 如果忘记qq账号怎么办 美发店从网上进货怎么办 爱库存一个月没卖一万怎么办 小米小店加价怎么办 开餐饮配送公司怎么办 美团退款失败怎么办 皇帝吃不完的菜怎么办 钱包到家逾期会怎么办 餐厅订不到包间怎么办 医保卡信息错误怎么办 人人贷债权到期怎么办 做优惠券不赚钱怎么办 遥控器不管用了怎么办 空调遥控不管用怎么办 ios下东西失败怎么办 农产品自产自销怎么办免税证明 怀孕吃了螃蟹怎么办 怀孕吃甲鱼了怎么办 怀孕吃龙虾了怎么办 除湿机显示h1是怎么办 发喜糖没盒子怎么办 身份证被网贷的群发怎么办 数学不好找零钱怎么办 平安备用金秒拒怎么办 买二手房办按揭怎么办 房贷失败怎么办啊 贷款买房放款后怎么办 房贷审核不通过怎么办 按揭买房没流水怎么办 公积金办不下来怎么办 按揭办不下来怎么办 办房贷银行流水不够怎么办 买房银行不放贷怎么办 帮别人办电话卡怎么办 不知道客户号怎么办 建行快贷还里没额度了怎么办 我建行快贷暂无额度怎么办 建行快e贷还不上怎么办 遇到经济诈骗该怎么办 网商贷额度到期后怎么办 企业支付宝冻结怎么办