先讲一下filter()函数包含什么:
他可以有两个参数,第一个参数可以是函数也可以是None,第二个参数是一个可迭代参数。若第一个参数为函数,则将第二个参数中的每一个元素带入函数计算,把返回Ture的值筛选出来,并成一个列表,如果第一个参数为None则将第二个参数中Ture的值筛选出来:
>>> filter(None,[1,0,False,True])
<filter object at 0x000001ACDC3D44E0>
>>> list(filter(None,[1,0,False,True]))
[1, True]
>>>
也可利用此函数帮助我们解决一些问题,例如求0~10内的奇数:
>>> def odd(x):
return x%2
>>> temp=range(10)
>>> show=filter(odd,temp)
>>> list(show)
[1, 3, 5, 7, 9]
利用上一篇文章学的lambda表达式可使我们的程序更加简洁:
>>> list(filter(lambda x :x%2,range(10)))
[1, 3, 5, 7, 9]
不知道小伙伴能不能看懂