欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

python埃氏篩法filter()方法python2運行卡死

系統 1678 0

目的:使用埃氏篩法構造素數

計算素數的一個方法是埃氏篩法,它的算法理解起來非常簡單:
首先,列出從2開始的所有自然數,構造一個序列:
2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, …
取序列的第一個數2,它一定是素數,然后用2把序列的2的倍數篩掉:
3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, …
取新序列的第一個數3,它一定是素數,然后用3把序列的3的倍數篩掉:
5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, …
取新序列的第一個數5,然后用5把序列的5的倍數篩掉:
7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, …
不斷篩下去,就可以得到所有的素數。

代碼實現

            
              #_*_coding:utf_8_*_
def iters():#先構造一個從3開始的奇數序列。這是一個生成器,并且是一個無限序列
    n=1
    while 1:
        n=n+2
        yield n
def isinit(n):#篩選函數
    return lambda x:x%n>0
def prime():
    yield 2
    it=iters()# 初始序列
    while 1:
        n=next(it)# 返回序列的第一個數
        yield n
        it=filter(isinit(n),it)# 構造新序列
for n in prime():
    if(n<10):
        print(n)
    else:
        break

            
          

問題

在python3中能夠直接運行,完美出結果,但是在python2中只出現第一個結果,后面就卡死了。原因是什么呢?搜了好多資料沒有這個的說明,在大神那里得到了答案。

filter() 函數:python2 會把你的 it 遍歷完再直接返回一個 list。python3 不需要遍歷完,它返回一個iterable

解決方法:

自己實現filter方法,重寫里面的邏輯,如下:

            
              def filter(func, it):
    while 1:
        v = next(it)
        if func(v):
            yield v

            
          

至此,上面代碼在python2中也可以完美運行了。


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 日本不卡一区二区 | 日韩a在线看免费观看视频 五月天激情视频在线观看 成人97在线观看免费高清 | 日本一级大毛片a一 | 亚洲三级视频 | 欧美久草 | 波多野结衣一级 | 啪啪成人 | 欧洲成人全免费视频网站 | 91久久亚洲国产成人精品性色 | 91亚洲免费| 一区二区三区四区免费看 | 国产拳头交一区二区 | 亚洲综合在线播放 | 激情狠狠| 很黄很色的小视频在线网站 | 国产高清美女一级毛片 | 欧美激情精品久久久久 | 国产日韩精品一区 | 亚洲精品免费在线观看 | 国产福利在线观看精品 | 精品国产一区三区 | 91精品国产综合久久久久久丝袜 | 91丝瓜视频| 欧美黑b| 日韩成人免费av | 激情视频网站 | 欧美videosex性极品hd | 久久久9999久久精品小说 | 欧美精品h在线播放 | 一区二区三区四区不卡视频 | 国产成人精品免费视频大全最热 | 亚洲一区二区久久 | 91成人亚洲 | 欧美调教视频 | 国产精品亚洲一区二区三区在线 | 毛片一级在线 | 亚洲一区二区免费看 | 亚洲码欧美码一区二区三区 | 亚洲成人一区二区 | 亚洲国产综合精品 | 天天视频在线播放观看视频 |