Python生成器
1.什么是可迭代對象?
可迭代對象,英文Iterable,是一個形容詞,這類對象和Java語言類似,都可看作是一類接口,抽象地描述事物具備怎樣的能力。所以,Iterable自然具備可迭代能力。
如下,常見的list,Iterator等都是Iterable對象:
In[33]:fromcollections.abcimportIterable,Iterator
In[34]:issubclass(list,Iterable)
Out[34]:True
In[35]:issubclass(Iterator,Iterable)
2.什么是一個生成器?
生成器是可迭代的(Iterable),最簡單的創(chuàng)建生成器方法是通過一對(),如下所示:
In[37]:g=(i*iforiin[1,4,0])
In[38]:g
Out[38]:at0x7fe8956e96d0>
g是一個生成器對象,generatorobject
獲取生成器對象的元素,可使用next函數(shù),如下所示,獲取第一個元素:
In[39]:next(g)
Out[39]:1
獲取第二個元素:
In[40]:next(g)
Out[40]:16
3.創(chuàng)建生成器的幾種方法?
如上所見,使用一對()能夠創(chuàng)建一個生成器對象。
除此之外,想必大家也都知道,是使用關(guān)鍵字yield.yield出現(xiàn)在一個函數(shù)中,運行到y(tǒng)ield處,返回的對象便是生成器對象(generatorobject).
4.生成器是迭代器嗎?
生成器對象(generatorobject)一定也是迭代器對象(Iteratorobject),如上面的生成器g,使用內(nèi)置函數(shù)isinstance驗證,返回True:
In[43]:isinstance(g,Iterator)
Out[43]:True
因此,它具備一切迭代器的特性,關(guān)于迭代器我們已在上一個話題討論,簡而言之,迭代器的幾個特點:
·是有去無回的,
·迭代器無需提前知道整個列表的所有元素,
·無需加載所有元素到RAM中盡而它是節(jié)省內(nèi)存的(memory-efficient).
生成器同樣具備這些特性。除此之外,它還有一些獨有的特性,下面跟隨yield我們便能看出來。
以上內(nèi)容為大家介紹了Python生成器,希望對大家有所幫助,如果想要了解更多Python相關(guān)知識,請關(guān)注IT培訓(xùn)機構(gòu):千鋒教育。http://www.mobiletrain.org/

猜你喜歡LIKE
相關(guān)推薦HOT
更多>>
pythonfor循環(huán)是什么
pythonfor循環(huán)是什么在做遍歷的時候,對于一些數(shù)據(jù)的反復(fù)循環(huán)執(zhí)行,我們會用到for循環(huán)的語句??梢哉f這是新手入門必學(xué)的語句之一,在很多基礎(chǔ)循...詳情>>
2023-11-13 07:46:36
pythoncontextmanager()的轉(zhuǎn)換
python中contextmanager()的轉(zhuǎn)換1、說明當(dāng)發(fā)出請求時,requests庫會在將請求實際發(fā)送到目標(biāo)服務(wù)器之前準(zhǔn)備該請求。請求準(zhǔn)備包括像驗證頭信息和...詳情>>
2023-11-13 06:34:35
python使用items()遍歷鍵值對
python使用items()遍歷鍵值對字典可以用來存儲各種方式的信息,所以有很多方式可以通過字典的所有鍵值對、鍵或值。說明1、即使通過字典,鍵值對...詳情>>
2023-11-13 04:24:15
python實例方法中self的作用
python實例方法中self的作用說明1、無論是創(chuàng)建類的構(gòu)造方法還是實例方法,最少要包含一個參數(shù)self。2、通過實例的self參數(shù)與對象進(jìn)行綁定,程序...詳情>>
2023-11-13 03:46:48熱門推薦
python實現(xiàn)WSGI的框架
沸pythonfor循環(huán)是什么
熱python-=是什么意思
熱python打開文本文件有哪些方法?
新pythoncontextmanager()的轉(zhuǎn)換
pythonre是什么?
pythondecimal是什么
python列表追加元素出錯的解決
python使用loguru操作日志
python使用items()遍歷鍵值對
pythonvim中有哪些對象
python實例方法中self的作用
pythonin和is的區(qū)分
pythonos.path.join()函數(shù)的使用
技術(shù)干貨







快速通道 更多>>
-
課程介紹
點擊獲取大綱 -
就業(yè)前景
查看就業(yè)薪資 -
學(xué)習(xí)費用
了解課程價格 -
優(yōu)惠活動
領(lǐng)取優(yōu)惠券 -
學(xué)習(xí)資源
領(lǐng)3000G教程 -
師資團隊
了解師資團隊 -
實戰(zhàn)項目
獲取項目源碼 -
開班地區(qū)
查看來校路線