python的生成器是其有魅力的地方之一,它的好處是不用一開始就生成一大堆的資料,而是在需要的時候才計算出資料,我們首先先來看一下怎樣建立乙個生成器
建立生成器很簡單,我們來看第一種
x = (i for i in range(11))
看一下是不是很簡單,看起來是不是很熟悉,怎麼像是列表生成式,是的,但是需要把最外面的中括號【】換成小括號()就可以了,而且這個時候,如果我們在來列印x,在控制台裡會輸出這麼一句話
at 0x0000000002801a40>
大家看到generator這個詞了嗎,此時x就變成了生成器,那怎麼看生成器裡的資料呢,很簡單直接用for遍歷即可
x = (i for i in range(11))
for j in x:
print(j)
既然是生成器那它就有自己獨特的訪問方式,那就是next()函式,而列表是不能的
x = (i for i in range(11))
print(next(x))
print(next(x))
大家發現沒,通過next()每次生成乙個資料,這樣就不會想列表一樣一下子列出整個數列在記憶體中 python 生成器作用 Python生成器
生成器介紹 在函式內部包含yield關鍵字,那麼該函式執行的結果是生成器,生成器就是迭代器。生成器的功能 把函式結果做成迭代器 以一種優雅的方式封裝好iter,next 提供了一種自己定義迭代器的方式。使用生成器建立乙個迭代器 def a print a yield 11 使用yield,執行後返回...
python生成器好處 Python生成器筆記
python中三大器有迭代器,生成器,裝飾器,本文主要講述生成器。主要從生成器的概念,本質,以及yield關鍵字的使用執行過程。本質 生成器是一類特殊的迭代器,使用了yield關鍵字的函式不再是函式,而是生成器。使用了yield的函式就是生成器 1.yield關鍵字有兩點作用 1.1 yield語句...
python生成器函式 Python 生成器函式
一 生成器 生成器指的是生成器物件,可由生成器表示式得到,也可使用 yield 關鍵字得到乙個生成器函式,呼叫這個函式得到乙個生成器物件 生成器物件,是乙個可迭代物件,是乙個迭代器 生成器物件,是延遲計算 惰性求值的 1.1 生成器函式 函式體重包含 yield 語句的函式,就是生成器函式,呼叫後返...