生成器本质上是迭代器.
可以通过以下方式获得生成器:
1.生成器函数
2.生成器表达式
函数中带有yield就是生成器函数:
1.第一次调用生成器函数调用的是生成器,并不会运行函数内的程序.
2.要以yield结尾,第一个yield不能用send,最后一个yield也不能用send
(send是为上一个yield返回一个值,第一个没有返回的值,最后一个后面没有程序)
推导式:
1.列表推导式: [ 结果 for循环 条件判断]
2.字典推导式: {结果 for循环 条件判断} (结果格式 a:b for循环可以用item获取键值对)
3集合推导式: {结果 for循环 条件判断} 集合元素不重复,唯一性
生成器表达式: (结果 for循环 条件) 得到的是生成器
生成器的特点和迭代器相同:
1.惰性机制 (没有调用,程序不会自动运行,调用一次,程序运行一次)
2.一直往下走,不能返回
3.节省内存