首頁技術(shù)文章正文

Python培訓(xùn):filter函數(shù)的用法

更新時間:2022-08-04 來源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

  filter函數(shù)會對指定序列執(zhí)行過濾操作。

  filter函數(shù)的定義如下:

filter(function, iterable)

  在上述定義中,第一個參數(shù)function可以是函數(shù)名稱或者None,第二個參數(shù)iterable可以是序列、支持迭代的容器或迭代器。返回值為迭代器對象。其中,function函數(shù)只能接收一個參數(shù),而且該函數(shù)的返回值為布爾值。

  filter函數(shù)的作用是以參數(shù)迭代器中的每個元素分別調(diào)用function函數(shù),最后返回的迭代器包含調(diào)用結(jié)果為True的元素。示例代碼如下:

func = lambda x:x % 2
result = filter(func, [1, 2, 3, 4, 5])
print(list(result))

  上述示例中,定義了一個匿名函數(shù)func,返回某個數(shù)取余以后的結(jié)果,接著調(diào)用filter函數(shù)將[1,2,3,4,5]中的每個元素取出來,作為func的參數(shù)調(diào)用func函數(shù),之后將結(jié)果轉(zhuǎn)換為列表的形式顯示。

  程序輸出的結(jié)果為:

[1, 3, 5]

  為了讓大家理解filter函數(shù)的作用,接下來,通過一張圖來描述上述示例執(zhí)行的原理,如圖7-12所示。

1659600379867_filter函數(shù)原理圖.jpg

  圖7-12 filter函數(shù)原理圖

  圖7-12分析了上述程序執(zhí)行的原理。由圖可知,程序把原始序列的元素執(zhí)行取余操作后,將不能被2整除(結(jié)果為True)的元素篩選出來構(gòu)成一個新的列表。

分享到:
在線咨詢 我要報名
和我們在線交談!