在 Python 中,filter() 是一種內(nèi)置函數(shù),用于過濾序列中不符合特定條件的元素,返回符合條件的元素組成的迭代器。filter() 函數(shù)需要傳入兩個參數(shù),第一個參數(shù)是一個函數(shù),用于對序列中的每個元素進行判斷;第二個參數(shù)是一個序列。filter() 函數(shù)會對序列中的每個元素依次執(zhí)行匿名函數(shù),如果返回值為 True,則保留該元素,否則過濾掉該元素。下面是一個簡單的例子:
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers)
在上述代碼中,我們將 numbers 序列中的偶數(shù)保留下來,并將它們存儲在 even_numbers 列表中。我們使用了一個匿名函數(shù) lambda x: x % 2 == 0,該函數(shù)返回一個布爾值,判斷其參數(shù) x 是否為偶數(shù)。我們將這個函數(shù)傳給了 filter() 函數(shù),并將 numbers 序列作為第二個參數(shù)。filter() 函數(shù)將遍歷 numbers 序列中的每個元素,對其執(zhí)行匿名函數(shù),并返回滿足條件的元素組成的迭代器。最后,我們將迭代器轉(zhuǎn)換為列表并打印輸出。
需要注意的是,filter() 函數(shù)返回的是一個迭代器對象,如果需要獲取一個列表,需要使用 list() 函數(shù)將迭代器轉(zhuǎn)換為列表。另外,filter() 函數(shù)也可以配合其他函數(shù)來使用,例如 map() 函數(shù),可以實現(xiàn)對序列的處理。