zoukankan      html  css  js  c++  java
  • python day 13 生成器 以及 推导式

    1、生成器的本质是迭代器

    2、生成器函数

      def  fn()

        函数体

        yield

      fn()

      g = fn()

      此时这个g就是生成器

      所以g 是可迭代的

      g._ _next_ _

      

      每执行一次_ _next_ _,函数就会走到yield 的位置。

    ·  

      生成器函数可以执行for 循环

      

      生成器在进行list 操作时,内部也进行了_ _next_ _的操作

      

    3、send

      生成器除了_ _next_ _ ,还可以用send()进行下一步的操作,每次都会执行到yield。

      

    4、推导式

      列表推导式:

      

      字典推导式

      

      

      set集合推导式

      

      生成器表达式

      

       生成器表达式 和 列表推导式的区别

       1)列表推导式比较耗内存,一次性加载。生成器表达式几乎不耗内存,使用的时候才会分配和使用内存。

       2)列表推导式得到的是一个列表,生成器表达式得到的是一个生成器。

       生成器表达式的惰性机制:生成器只有在访问的时候才取值。

  • 相关阅读:
    PAT——1069. 微博转发抽奖
    PAT——1068. 万绿丛中一点红
    PAT——1066. 图像过滤
    PAT——1065. 单身狗
    PAT——1064. 朋友数
    PAT——1063. 计算谱半径
    PAT——1062. 最简分数
    PAT——1061. 判断题
    PAT——1060. 爱丁顿数
    PAT——1059. C语言竞赛
  • 原文地址:https://www.cnblogs.com/wf123/p/9329913.html
Copyright © 2011-2022 走看看