zoukankan      html  css  js  c++  java
  • python ---12 生成器 推导式

    一.生成器   

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

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

      1.创建生成器   

         最后以yield结束

          1. 通过⽣成器函数

            2. 通过各种推导式来实现⽣成器
          3. 通过数据的转换也可以获取⽣成器  

      2.send用法     

        send 和 __next__都是下一个的意思

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

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

     

       3.yield from

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

    二.推导式

      (只有列表,字典,集合 .    没有元组)

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

      2.字典推导式

        { 结果(k,v)   for循环   if 条件} 

     

      3.集合推导式

        {k  for循环   if 条件}

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

     

    三.生成器函数

         1.生成器表达式   

      (i  for i  in  range(10))

      2.可以使用for循环来循环这个生成器

     

      3.生成器表达式也可以进行筛选

     

     

      4.⽣成器的惰性机制:

      ⽣成器只有在访问的时候才取值. 

  • 相关阅读:
    ASCII码对照表
    有种美叫做放弃
    OCX和DLL的区别
    江湖经验:喝酒的学问技巧
    TC2.0实现多文件编译
    希尔排序
    CalcOpticalFlowPyrLK的使用(转)
    简单选择排序的实现
    VS2008中解决方案窗口的问题
    用友T3用友通行政单位没有损益类科目,如何做期间损益结转?
  • 原文地址:https://www.cnblogs.com/sc-1067178406/p/10103582.html
Copyright © 2011-2022 走看看