python filter的用途: 从可迭代元素中过滤不想要的数据 或者说是留下想要的数据
经典题目:求100以内的素数
分析:题目无非就是从100元素中筛选满足条件的数据,这不正是python 过滤器的应用场景吗?
def find(x):
for i in range(2,x):
if x % i == 0:
return False
return True
这是我们自定义的一个函数,算法很简单 如果该数能被某个数被2到该数减1的数整除,则该数就不是素数 返回False,否则就断定该数为素数 并返回True
然后我们可以将该函数应用到可迭代序列的每一个元素上,看例子:
list(filter(find,range(2,100)))
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
把2-100之间的每个数都作为参数传入到find函数中,如果该参数传入该函数后,返回值为True,则说明该值符合条件,就作为最终结果保留。