Python高階函數(shù)之filter()函數(shù)代碼示例
前言:
家人們,當(dāng)你們獲取了一個(gè)序列的時(shí)候,想要把一些內(nèi)容去掉,保留一部分內(nèi)容的時(shí)候,你們應(yīng)該都是用循環(huán)去一個(gè)個(gè)處理吧,這樣很麻煩,而且效率低下,那這時(shí)候怎么辦呢?有沒有更好的方法呢?
當(dāng)然有啦,所以今天我們一起來學(xué)習(xí)一個(gè)新的高階函數(shù)filter() 函數(shù),filter在英語里面是過濾篩選的意思,同樣在Python也是過濾篩選的功能,最重要的是效率要比Python循環(huán)的效率更加高(其執(zhí)行效率基本上跟C語言差不多)
在學(xué)習(xí)之前先用help(filter)查看相關(guān)信息,如圖所示:

filter() 函數(shù)介紹
格式:
filter(function, iterable)
參數(shù)說明:
function是表示函數(shù),也就是篩選條件,返回值一般是布爾類型
iterable是表示可迭代對(duì)象
返回值:
返回filter類型,也就是可迭代對(duì)象(迭代器),我們可以去通過類型轉(zhuǎn)換得到里面的數(shù)據(jù),一般只能轉(zhuǎn)換為元素可變性的序列類型才可以輸出比如list,但是如果轉(zhuǎn)換為元素不可變類型是輸出不了的,比如元組tuple
filter() 函數(shù)使用示例
1.與循環(huán)對(duì)比
filter() 函數(shù)用法:
def fun(n:int)->bool:
return n>5
li=[x for x in range(10)]
a=filter(fun,li)
print(a)
print(list(a))
#輸出結(jié)果:
# <filter object at 0x000002E07E530490>
# [6, 7, 8, 9]通過循環(huán)去過濾:
li=[x for x in range(10)]
new_li=[]
for i in li:
if i>5:
new_li.append(i)
print(new_li)
#輸出結(jié)果:[6, 7, 8, 9]2.與lambda函數(shù)綜合使用
li=[x for x in range(10)] a=filter(lambda x:x%2!=0,li) print(a) print(list(a)) print(tuple(a)) print(set(a)) #輸出結(jié)果: # [1, 3, 5, 7, 9] # () # set()
注意,元組和集合的元素是不可變的,所以無法轉(zhuǎn)換為tuple或者set類型
3.使用None過濾False
t=(False,True,False,False,True) new=filter(None,t) print(list(new)) #輸出結(jié)果:[True, True]
因?yàn)镹one是表示False的意思的,也就是說如果False進(jìn)入到None那么返回值為False,所以我們可以去用來過濾掉布爾類型中的False。
4.過濾字典相關(guān)數(shù)據(jù)
di=[{'name':'python','num':1},{'name':'C','num':2},{'name':'Java','num':3}]
a=filter(lambda x:x['name']=='python',di)
print(list(a))
#輸出結(jié)果:[{'name': 'python', 'num': 1}]到此這篇關(guān)于Python高階函數(shù)之filter()函數(shù)代碼示例的文章就介紹到這了,更多相關(guān)Python的filter()函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python內(nèi)置函數(shù)int()用法簡單介紹
這篇文章主要給大家介紹了關(guān)于Python內(nèi)置函數(shù)int()用法的相關(guān)資料,int()函數(shù)常用來把其他類型轉(zhuǎn)換為整數(shù),文中通過代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用python具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2024-05-05
PyTorch的深度學(xué)習(xí)入門之PyTorch安裝和配置
這篇文章主要介紹了PyTorch的深度學(xué)習(xí)入門之PyTorch安裝和配置,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-06-06
Python 轉(zhuǎn)換文本編碼實(shí)現(xiàn)解析
這篇文章主要介紹了Python 轉(zhuǎn)換文本編碼實(shí)現(xiàn)解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值2019-08-08
利用Python實(shí)現(xiàn)簡易計(jì)算器的示例代碼
最近學(xué)習(xí)了字符串,運(yùn)算符,條件語句,循環(huán)語句,我在想可以用我最近學(xué)的東西做什么? 看到運(yùn)算我就想到了可以做一個(gè)簡易的計(jì)算器,感興趣的可以了解一下2022-11-11
?python中pandas讀取csv文件?時(shí)如何省去csv.reader()操作指定列步驟
這篇文章主要介紹了?python中pandas讀取csv文件?時(shí)如何省去csv.reader()操作指定列步驟,對(duì)正在工作的你可能有一定的幫助,需要的朋友可以參考一下2022-01-01

