python生成器,函數,數組



1.什么是生成器
用一個比喻來形容,工廠中生產保齡球的流水線,機器每次只生產一個保齡球,下次繼續生產下一個,直到停止(原料不足,停止供電等條件)為止。
機器就是我們的生成器。

2.使用示例
在python中數組的語法是[]

L=[x * x for x in range(10)]
print L

生成器的語法是()

g=(x*x for x in range(10))
print g
print g.next()

運行結果如下:

運行后,數組全部初始化,生成器執行一次,記錄當前位置,下次繼續執行。

3.使用yield生成器

def odd():
    print "step 1"
    yield
    print "step 2"
    yield
    print "step 3"
    yield
o=odd()
o.next()
o.next()
o.next()

運行結果如下:

加入yield后,odd就不是普通函數了,而是一個生成器,在執行過程中,遇到yield就中斷,下次又繼續執行。


4.生成器和數組的區別
比如一組100萬的數據,用數組來存儲,需要占用很大的存儲空間,而用生成器,每次只占用一個空間。

5.生成器和函數的區別
函數在return或者函數最后一條語句后返回,生成器generator在每次調用next()時執行,遇到yield就返回,再次執行時從上次返回的yield語句處繼續執行。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM