【python迭代】迭代

1 概念

    1. 容器
        數據結構:多個元素組織在一起,並且提供了訪問元素的方法
    2. 可迭代對象 // 序列-->可迭代對象
        實現了__iter__的對象,可以用在迭代工具中遍歷
    2. 迭代器 // 1. 訪問集合元素的一種方式  2. 可以記住遍歷狀態
        實現了__iter__和__next__的對象;可以顯示調用next()返回下一項
    3. 迭代協議
        對象提供一個next()方法,要麼返回下一項,要麼StopIteration異常
    4. 生成器  // 1. 自動實現了迭代器協議,可以直接調用next() 2. 有狀態 3. 延遲計算
        生成器是特殊的迭代器

        *生成器函數* // 返回迭代器的函數
        yield關鍵字返回值,每次返回一個結果,掛起函數中間狀態,以便下次從他離開的地方繼續執行
        *生成器表達式*
        () // 生成器表達式比列表解析更加節省內存

2 可迭代對象種類

    字符串、列表、元祖、字典、集合、文件等,一般情況下都不是可迭代對象;可以有2種方式變爲可迭代對象:
    1> iter(上述對象)  // 手動調用iter()將對象變爲可迭代對象
    2> 迭代工具 // 比如for循環

    **for循環本質**
    for循環本質:for循環作爲迭代工具,內部會先調用__iter__()方法,然後調用__next__()方法一個個返回元素

3 迭代工具

    *提供了一個通用的訪問可迭代對象元素的方式*
    1 for循環 2 列表解析 3 字典解析 4 內置函數 // map、zip、filter、sum、enumerate、in成員
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章