Python中的內置函數filter()主要用于過濾序列。
和map類似,filter()也接收一個函數和序列,和map()不同的是,filter()把傳入的函數依次作用于每個元素,然后根據返回值是
True還是False決定保留還是丟棄該元素。
例1:
1
2
3
|
number_list = range ( - 5 , 5 ) less_than_zero = list ( filter ( lambda x: x < 0 , number_list)) print (less_than_zero) |
上述例子的輸出結果為:
1
|
[ - 5 , - 4 , - 3 , - 2 , - 1 ] |
例2:在一個list中,刪掉偶數,只保留奇數,可以這么寫:
1
2
3
4
|
def is_odd(n): return n % 2 = = 1 list ( filter (is_odd, [ 1 , 2 , 4 , 5 , 6 , 9 , 10 , 15 ])) |
改程序輸出結果為:
1
|
[ 1 , 5 , 9 , 15 ] |
注意:filter()函數返回的是一個Iterator,也就是一個迭代器,所以要強迫filter()完成計算結果,需要用list()函數獲得所有結果并返回list。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
原文鏈接:http://blog.csdn.net/xiongchun11/article/details/54408120