码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2019-01-02 23:34:06      阅读:326      评论:0      收藏:0      [点我收藏+]

标签:inf   9.png   数据   --   结束   集合推导式   __next__   发送   for循环   

三十、函数进阶

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

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

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

      1. 通过?成器函数

        2. 通过各种推导式来实现?成器
      3. 通过数据的转换也可以获取?成器  技术分享图片

    ②send用法     

    send 和 __next__都是下一个的意思

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

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

技术分享图片

 

 

 

   ③yield from

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

技术分享图片

 

 

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

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

技术分享图片

 

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

 技术分享图片

 

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

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

 技术分享图片

 

   3.生成器函数 

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

技术分享图片

 

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

技术分享图片

 

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

 技术分享图片

 

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

技术分享图片

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

标签:inf   9.png   数据   --   结束   集合推导式   __next__   发送   for循环   

原文地址:https://www.cnblogs.com/amirky/p/10211552.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!