filter:
Python內(nèi)建的filter()函數(shù)用于過濾序列。
filter()和map()類似
filter()也接收一個函數(shù)和一個序列鞍爱。和map()不同的是,filter()把傳入的函數(shù)依次作用于每個元素,然后根據(jù)返回值是True還是False決定保留還是丟棄該元素。
filter()廣泛運用于求奇數(shù)哄啄、偶數(shù)等
filter()函數(shù)返回的是一個Iterator,也就是一個惰性序列风范,所以要強迫filter()完成計算結(jié)果咨跌,需要用list()函數(shù)獲得所有結(jié)果并返回list。
例題:如何求素數(shù)硼婿?(面試題可能會出到)
用埃氏篩法锌半。(簡單來說就是從2開始,把2的倍數(shù)篩掉寇漫,然后到3的倍數(shù)刊殉,到4的倍數(shù).....)
python實現(xiàn)的步驟:
需要3個函數(shù)和一個for語句:
<1>構(gòu)造3開始的奇數(shù)序列
<2>構(gòu)造篩選函數(shù)
<3>定義生成器
<4>for語句設(shè)置取值范圍