python 生成器generator

特性

節省內存。不需要像list一樣一下子存儲很多需要的數據,如果數據可以通過某種規則生成,則可以通過python的生成器來生成數據,在需要數據時直接調用即可。

用法

list在創建時使用‘[]’,而創建生成器時使用‘()’,如創建生成器g,需要數據時使用next()獲得下一個數據:

注意:當生成器中無更多元素時,會拋出StopIteration錯誤。

 有時將函數中的print函數改爲yield,可以將函數變爲生成器,如打印斐波那契數列時,通常我們這樣寫:

要將其轉換成生成器,只要將print語句改成yield,如:

調用生成器時,函數就會執行到yield語句,在下一次調用時,會從yield語句的下一句開始執行,直到下一個yield語句。

生成器是可迭代對象,所以可以用在for循環中,如:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章