生成器和生成器函数以及各种推导式

it2022-05-05  158

1. 生成器 本质就是迭代器. 一个一个的创建对象创建生成器的方式: 1. 生成器函数 2. 通过生成器表达式来获取生成器 3. 类型转换(看不到) 2. 生成器函数 (重点) 生成器函数中包含 yield , 返回数据和return差不多. return会立即结束这个函数的执行 yield 可以分段的执行一个函数

生成器函数在执行的时候返回生成器. 而不是直接执行此函数

能向下执行的两个条件: __next__(), 执行到下一个yield send(), 执行到下一个yield, 给上一个yield位置传值

所有的生成器都是迭代器都可以直接使用for循环 都可以使用list()函数来获取到生成器内所有的数据

生成器中记录的是代码而不是函数的运行 def func(): print("我的天哪 ")

yield "宝宝"

gen = func() # 创建生成器. 此时运行会把生成器函数中的代码记录在内存 当执行到__next__(), 运行此空间中的代码, 运行到yield结束.

优点: 节省内存, 生成器本身就是代码. 几乎不占用内存 特点: 惰性机制, 只能向前. 不能反复

3. 各种推导式 (诡异) 列表推导式 [结果 for循环 if] 字典推导式 {结果(k:v) for循环 if} 集合推导式 {结果(k) for循环 if}

 

4. 生成器表达式 (重点) (结果 for循环 if)

转载于:https://www.cnblogs.com/selina1997/p/10102787.html


最新回复(0)