强烈向大家推荐一个好网站,【我要自学网】,教程由在校老师录制,有办公会计、平面设计、室内设计、机械设计、网页编程、影视动画等教程.....让你足不出门,都可以体验学校的专业教育!
生成器
生成器函数
生成器的本质就是迭代器
生成器的特点和迭代器一样.取值方式和迭代器一样(next(), send(): 给上一个yield传值).
生成器一般由生成器函数或者生成器表达式来创建
其实就是手写的迭代器
def func():
print("娃哈哈")
yield 1 # return和yield都可以返回数据
print("呵呵呵")
gen = func() # 不会执行你的函数. 拿到的是生成器
#函数中如果有yield 这个函数就是生成器函数. 生成器函数() 获取的是生成器. 这个时候不执行函数
#yield: 相当于return 可以返回数据. 但是yield不会彻底中断函数. 分段执行函数.
gen.__next__() 执行函数. 执行到下一个yield.
gen.__next__() 继续执行函数到下一个yield.
结果输出是
生成器表达式
语法:(结果 for循环 条件)
推导式
列表推导式
语法:[结果 for循环 判断]
字典推导式
语法:{k:v for循环 条件筛选}
集合推导式
语法 {k for循环 条件}
没有元组推导式,生成器表达式