python生成器推导式_python之路---12 生成器 推导式

本文详细解析了生成器函数的工作原理,介绍了yield的使用,以及如何通过推导式创建生成器。重点讲解了生成器表达式、惰性机制和yieldfrom的用法。涵盖了列表、字典和集合推导,以及生成器的实用技巧和内存优化。
摘要由CSDN通过智能技术生成

三十、函数进阶

1.生成器 函数中有yield 的就是生成器函数(替代了return)

本质就是迭代器 一个一个的创建对象 节省内存

①创建生成器 最后以yield结束

1. 通过⽣成器函数

2. 通过各种推导式来实现⽣成器

      3. 通过数据的转换也可以获取⽣成器1539775-20181211163243187-2107398890.png

②send用法

send 和 __next__都是下一个的意思

但send可以给上一个yield 位置传值 不能给最后⼀个yield发送值. 在第⼀次执⾏⽣

成器代码的时候不能使⽤send()

1539775-20181211164239402-1450426427.png

③yield from

把一个yield from循环完再循环下一个yield from

1539775-20181211165230317-1832123677.png

2.推导式 (只有列表,字典,集合 . 没有元组)

1). 列表推导式 [ 结果 for循环 if 条件]

1539775-20181211165852761-1580536686.png

2).字典推导式 { 结果(k,v) for循环 if 条件}

1539775-20181211170317447-619941028.png

3).集合推导式 {k for循环 if 条件}

集合的特点: ⽆序, 不重复. 所以集合推导式⾃带去重功能

1539775-20181211170711628-1579442581.png

3.生成器函数

1).生成器表达式 (i for i in range(10))

1539775-20181211172113267-1621404418.png

2).可以使⽤for循环来循环这个⽣成器:

1539775-20181211172204039-983080759.png

3).⽣成器表达式也可以进⾏筛选

1539775-20181211172351694-1806502491.png

4).⽣成器的惰性机制: ⽣成器只有在访问的时候才取值.

1539775-20181211172843000-841695189.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值