生成器,推导式,枚举

1,生成器
    生成器的本质就是迭代器(_next_())
    生成器的特点和迭代器一样,取值和迭代一样
    生成器一般由生成器函数或者生成器表达式来创建
    其实就是手写的迭代器
2,生成器函数
和普通的函数没有区别,里面的yield函数就是生成器函数
生成器函数在执行的时候,默认不会执行函数体,返回生成器
通过生成器的_next_()分段来执行这个函数,send()给上一个yield传值,
不能再开头(没有上一个yield)
3.推导式:
    就是是用一句话生成一个列表
    1.列表推导式[结果 for循环 条件筛选]
    2,字典推导式{k:v for循环 条件筛选}
    3,集合推导式{k:for循环 条件}
4.生成器表达式
(结果 for循环 条件)
特点:
    1.惰性机制
    2.只能向前
    3.节省内存(鸡蛋)
2,yield和return作用一样都可以返回函数

yield的for循环

3,

send和_next_()的区别:
1.send和next都是让生成器向下一次走
2,send可以给上一个yield的位置传递值,不能给最后一个传值

4.迭代模仿for循环

6.枚举

输出:

(0, '容妃')
(1, '贵妃')
(2, '爱妃')

7 .主要内容回顾
    1,生成器
    2,推导式
    3,生成器表达式
    4.生成器函数
        1.在函数内部有个yield
        2,在这个时候我们执行这个函数,这个时候获取的是生成器
        3._next_()可以触发生成器的执行,执行下一个yield
        4.send().可以给上一个yield传值,执行到下一个yield.不能再开头和结尾
        特点:惰性机制,只能向前,节省内存
2.推导式
    1.列表推导式:
    [结果 for 判断]
    2.字典推导式
    {k:v for 判断}
    3.集合推导式
     {k for 判断}
     4.生成器表达式
     (结果 for 判断)
     元祖是没有表达式的,因为元祖是不可 变得
3.内置函数
    3.6.2的版本有68个内置函数
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章