亚洲国产日韩人妖另类,久久只有这里有精品热久久,依依成人精品视频在线观看,免费国产午夜视频在线

      
      

        python生成器(Generator)

        先解釋幾個易混淆的概念:

        • 可迭代對象(Iterable)
        • 迭代器(Iterator)
        • 迭代(Iteration)

        Python中任意的對象,只要它定義了可以返回一個迭代器的__iter__方法,或者定義了可以支持下標索引的__getitem__方法,那么它就是一個可迭代對象。簡單說,可迭代對象就是能提供迭代器的任意對象。

        Python中任意的對象,只要定義了next(Python2) 或者__next__方法,它就是一個迭代器。注意:可迭代對象不一定是迭代器,也即對象即使支持迭代,因為缺少next或__next__方法也不能直接對其進行迭代操作,這個時候可以使用內(nèi)置函數(shù)iter來返回一個迭代器對象。

        迭代用簡單的話講,它就是從某個地方(比如一個列表)取出一個元素的過程。當我們使用一個循環(huán)來遍歷某個東西時,這個過程本身就叫迭代。

        生成器也是一種迭代器,但是你只能對其迭代一次。這是因為它們并沒有把所有的值存在內(nèi)存中,而是在運行時生成值。你通過遍歷來使用它們,要么用一個“for”循環(huán),要么將它們傳遞給任意可以進行迭代的函數(shù)和結(jié)構(gòu)。大多數(shù)時候生成器是以函數(shù)來實現(xiàn)的。然而,它們并不返回(return)一個值,而是提供(yield)一個值,這樣就不必擔心使用大量資源。例如,計算斐波那契數(shù)列的生成器如下所示:

        # generator versiondef fibon(n): a = b = 1 for i in range(n): yield a a, b = b, a + b

        函數(shù)使用方法如下:

        for x in fibon(1000000): print(x)

        鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場,版權(quán)歸原作者所有,如有侵權(quán)請聯(lián)系管理員(admin#wlmqw.com)刪除。
        上一篇 2022年6月16日 06:15
        下一篇 2022年6月16日 06:15

        相關(guān)推薦

        聯(lián)系我們

        聯(lián)系郵箱:admin#wlmqw.com
        工作時間:周一至周五,10:30-18:30,節(jié)假日休息