先講一下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]
不知道小伙伴能不能看懂