Python語言基礎(chǔ)之——迭代器生成器和模塊

1.迭代器

1.什么是迭代器(iter)

迭代器是容器型數(shù)據(jù)類型,只能通過類型轉(zhuǎn)換和生成器來獲得迭代器對象
迭代器存儲(chǔ)數(shù)據(jù)的特點(diǎn):同時(shí)可以保存多個(gè)數(shù)據(jù),沒有辦法直接查看,而是需要先將數(shù)據(jù)從迭代器中取出(取出后不能再放回去)

所有的容器都可以轉(zhuǎn)換成迭代器

2.獲取迭代器中的元素

無論通過什么方式,只要將迭代器中某個(gè)元素拿到了,這個(gè)元素就不再存在了

1.遍歷

2.獲取單個(gè)元素

next(迭代器對象) - 獲取迭代器中的元素(最前面的那個(gè)元素)

2.生成式

生成式就是生成器的簡寫

列表推導(dǎo)式的[]變成()就變成了生成式

# 列表推導(dǎo)式:
list1 = [x + 2 for x in range(5)]
print(list1)

# 生成式:
gen1 = (x + 2 for x in range(5))
print(list(gen1))

3.生成器

1.什么是生成器

生成器就死迭代器

調(diào)用一個(gè)帶yield 關(guān)鍵字的函數(shù)就可以生成一個(gè)生成器

2.生成器產(chǎn)生數(shù)據(jù)

生成器能生產(chǎn)多少數(shù)據(jù)就看執(zhí)行生成器對應(yīng)的函數(shù)的函數(shù)體會(huì)遇到幾次yield。yield后面表達(dá)式的值就是生成器能夠產(chǎn)生的數(shù)據(jù)

3.生成器產(chǎn)生數(shù)據(jù)的原理

當(dāng)獲取生成器元素的時(shí)候,會(huì)自動(dòng)調(diào)用生成器關(guān)聯(lián)的函數(shù),第一次從函數(shù)開始的地方開始執(zhí)行,直到遇到y(tǒng)ield為止,并且將yield后面的值作為獲取到的數(shù)據(jù),后面每次都是從上一次結(jié)束的位置開始執(zhí)行,直到遇到y(tǒng)ield,如果從開始執(zhí)行到函數(shù)結(jié)束都沒有遇到y(tǒng)ield,就不會(huì)產(chǎn)生數(shù)據(jù)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容