zoukankan      html  css  js  c++  java
  • python函数--生成器,生成器表达式,列表推导式

    1. 今日内容大纲
    
       2. 生成器
    
          + yield
          + yield return
          + yield from
    
       3. 生成器表达式,列表推导式
    
       4. 内置函数 I
    
          
    
    
     
    
       
    
    3. 今日内容
    
       + 生成器
    
         + 生成器:python社区,生成器与迭代器看成是一种。生成器的本质就是迭代器。唯一的区别:生成器是我们自己用python代码构建的数据结构。迭代器都是提供的,或者转化得来的。
           + 获取生成器的三种方式:
             + 生成器函数。
             + 生成器表达式。
             + python内部提供的一些。
         + 生成器函数获得生成器:
    
         ```python
         函数
         def func():
             print(111)
             print(222)
             return 3
         ret = func()
         print(ret)
         
         生成器函数
         def func():
             print(111)
             print(222)
             yield 3
             a = 1
             b = 2
             c = a + b
             print(c)
             yield 4
         ret = func()
         # print(ret)
         print(next(ret))
         print(next(ret))
         print(next(ret))
         一个next 对应一个yield
         
         ```
    
         + yield return
    
           return:函数中只存在一个return结束函数,并且给函数的执行者返回值。
           yield:只要函数中有yield那么它就是生成器函数而不是函数了。生成器函数中可以存在多个yield,yield不会结束生成器函数,一个yield对应一个next。
    
         + 吃包子练习题:
    
           ```python
           def func():
               l1 = []
               for i in range(1,5001):
                   l1.append(f'{i}号包子')
               return l1
           ret = func()
           print(ret)
           
           def gen_func():
               for i in range(1,5001):
                   yield f'{i}号包子'
           ret = gen_func()
           # [3号包子.]
           for i in range(200):
               print(next(ret))
           
           for i in range(200):
               print(next(ret))
           
           ```
    
         + yield from
    
           ```python
           def func():
               l1 = [1, 2, 3, 4, 5]
               yield l1
           ret = func()
           print(next(ret))
           
           
           
           def func():
               l1 = [1, 2, 3, 4, 5]
               yield from l1
               '''
               yield 1
               yield 2
               yield 3
               yield 4
               yield 5
               '''
               将l1这个列表变成了迭代器返回。
           ret = func()
           print(next(ret))
           print(next(ret))
           print(next(ret))
           print(next(ret))
           print(next(ret))
           
           ```
    
           
    
       + 生成器表达式,列表推导式
    
         + 用一行代码构建一个比较复杂有规律的列表。
    
         + 列表推导式:
    
           + 循环模式:[变量(加工后的变量) for  变量  in  iterable]
           + 筛选模式:[变量(加工后的变量) for  变量  in  iterable if 条件]
    
         + 循环模式讲解
    
           练习题:
    
           
    
       + 内置函数 I
    
    4. 今日总结
    
       1. 生成器:***
       2. 生成器函数 yield 
       3. yield与return 区别。yield from
       4. 列表推导式,生成器表达式。 ***
       5. 内置函数:今天讲的内置函数,了解。


    + 生成器:生成器就是迭代器,生成器是自己用python代码构建的。
    + 1,生成器函数
    + 2,生成器表达式
    + 3,python内部提供的。
    + 如何判断你函数,还是生成器函数?
    + yield
    + yield return
    + 吃包子。敲三遍。
    + yield from 将一个可迭代对象,变成一个生成器。
    + 列表推导式,生成器表达式。
    + 循环模式: [变量(加工后的变量) for 变量 in iterable]
    + 筛选模式: [变量(加工后的变量) for 变量 in iterable if 条件]
    + 内置函数?68.
    +



  • 相关阅读:
    [转载]Sublime Text 3 搭建 React.js 开发环境
    浏览器缓存之Expires Etag Last-Modified max-age详解
    第16周作业
    第15周作业
    第14周作业
    第13周作业集
    软件工程结课作业
    第13次作业--邮箱的正则表达式
    第12次作业--你的生日
    第11次作业--字符串处理
  • 原文地址:https://www.cnblogs.com/zengluo/p/13128972.html
Copyright © 2011-2022 走看看