python使用生成器實(shí)現(xiàn)可迭代對(duì)象
本文實(shí)例為大家分享了python使用生成器實(shí)現(xiàn)可迭代對(duì)象的具體代碼,供大家參考,具體內(nèi)容如下
案例分析:
實(shí)一個(gè)可迭代對(duì)象的類(lèi),它能迭代出給定范圍內(nèi)所有的素?cái)?shù):
pn = Number(1, 30)
for k in pn:
print(k)
結(jié)果為:2,3,5,7,11,13,17,19,23,29
如何解決這個(gè)問(wèn)題?
將該類(lèi)的__iter__方法實(shí)現(xiàn)成生成器函數(shù),每次yield返回一個(gè)素?cái)?shù)
#!/usr/bin/python3 class Number(object): def __init__(self, start, end): self.start = start self.end = end # 判斷一個(gè)數(shù)字是否是素?cái)?shù) def get_num(self, k): if k >= 2: for i in range(2, k): if k % i == 0: return False return True def __iter__(self): for k in range(self.start, self.end+1): if self.get_num(k): # 是素?cái)?shù)yield出去 yield k if __name__ == '__main__': num = Number(2, 30) for i in num: print(i)
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- python生成器,可迭代對(duì)象,迭代器區(qū)別和聯(lián)系
- 淺談Python中的可迭代對(duì)象、迭代器、For循環(huán)工作機(jī)制、生成器
- python中的迭代和可迭代對(duì)象代碼示例
- Python cookbook(數(shù)據(jù)結(jié)構(gòu)與算法)從任意長(zhǎng)度的可迭代對(duì)象中分解元素操作示例
- ES6 迭代器與可迭代對(duì)象的實(shí)現(xiàn)
- Python可迭代對(duì)象操作示例
- 詳解Python中的內(nèi)建函數(shù),可迭代對(duì)象,迭代器
- 一篇文章弄懂Python中的可迭代對(duì)象、迭代器和生成器
相關(guān)文章
OpenCV-Python實(shí)現(xiàn)凸包的獲取
凸包是一個(gè)計(jì)算幾何中的概念,在圖像處理過(guò)程中,我們常常需要尋找圖像中包圍某個(gè)物體的凸包,本文就使用OpenCV實(shí)現(xiàn),感興趣的可以了解一下2021-06-06python加密解密庫(kù)cryptography使用openSSL生成的密匙加密解密
這篇文章主要介紹了python加密解密庫(kù)cryptography使用openSSL生成的密匙加密解密,需要的朋友可以參考下2020-02-02python判斷windows系統(tǒng)是32位還是64位的方法
這篇文章主要介紹了python判斷windows系統(tǒng)是32位還是64位的方法,實(shí)例分析了兩種解決方法,非常簡(jiǎn)單實(shí)用,需要的朋友可以參考下2015-05-05python實(shí)現(xiàn)自動(dòng)重啟本程序的方法
這篇文章主要介紹了python實(shí)現(xiàn)自動(dòng)重啟本程序的方法,涉及Python進(jìn)程操作的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07Django uwsgi Nginx 的生產(chǎn)環(huán)境部署詳解
這篇文章主要介紹了Django uwsgi Nginx 的生產(chǎn)環(huán)境部署詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-02-02用60行代碼實(shí)現(xiàn)Python自動(dòng)搶微信紅包
這篇文章主要介紹了用60行代碼實(shí)現(xiàn)Python自動(dòng)搶微信紅包,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02Python圖形用戶(hù)界面與游戲開(kāi)發(fā)實(shí)例詳解
GUI是圖形用戶(hù)界面的縮寫(xiě),圖形化的用戶(hù)界面對(duì)使用過(guò)計(jì)算機(jī)的人來(lái)說(shuō)應(yīng)該都不陌生,下面這篇文章主要給大家介紹了關(guān)于Python圖形用戶(hù)界面與游戲開(kāi)發(fā)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-09-09淺析如何在Python中使用結(jié)構(gòu)模式匹配
在Python 3.10中引入了模式匹配語(yǔ)法,允許我們?cè)趹?yīng)用程序中使用強(qiáng)大的新編程技術(shù)進(jìn)行決策,下面我們就來(lái)講講如何在Python中使用結(jié)構(gòu)模式匹配吧2023-08-08