filter方法可以實現篩選,第一個參數是一個函數,返回值是True或者False,第二個參數可以是str、tuple、list,將后面的參數依次傳遞給函數,依次判斷結果,留下結果為 True的。比如:
d = filter(lambda x: x%2, [1,2,3,4])
這個結果為1,3.執行過程:
1、 將列表中的1傳遞給前邊的函數的x,判斷x%2的結果是否為True(非0),True就留下
2、 將列表中的2傳遞給函數中的x,判斷x%2的結果是否為True(非0),True就留下
3、 依次類推直到全部判斷完畢
4、 結果就為:【1,3】
再看下面這個,第一個參數是None,這種時候后面的所有值都返回,
e = filter(None, "I love python")
print(list(e))
print的結果為:
['I', ' ', 'l', 'o', 'v', 'e', ' ', 'p', 'y', 't', 'h', 'o', 'n']
