filter:
Python内建的filter()函数用于过滤序列。
filter()和map()类似
filter()也接收一个函数和一个序列。和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。
filter()广泛运用于求奇数、偶数等
filter()函数返回的是一个Iterator,也就是一个惰性序列,所以要强迫filter()完成计算结果,需要用list()函数获得所有结果并返回list。
例题:如何求素数?(面试题可能会出到)
用埃氏筛法。(简单来说就是从2开始,把2的倍数筛掉,然后到3的倍数,到4的倍数.....)
python实现的步骤:
需要3个函数和一个for语句:
<1>构造3开始的奇数序列
<2>构造筛选函数
<3>定义生成器
<4>for语句设置取值范围