生成器,推導式,枚舉

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個內置函數
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章