Python如何用filter函數(shù)篩選數(shù)據(jù)
一.filter函數(shù)簡介
filter函數(shù)主要用來篩選數(shù)據(jù),過濾掉不符合條件的元素,并返回一個(gè)迭代器對象,如果要轉(zhuǎn)換為列表list或者元祖tuple,可以使用內(nèi)置函數(shù)list() 或者內(nèi)置函數(shù)tuple()來轉(zhuǎn)換;
filter函數(shù)接收兩個(gè)參數(shù),第一個(gè)為函數(shù),第二個(gè)為序列,序列的每個(gè)元素作為參數(shù)傳遞給函數(shù)進(jìn)行判,然后返回 True 或 False,最后將返回 True 的元素放到新列表中,就好比是用篩子,篩選指定的元素;
語法:
filter(function, iterable)
參數(shù):
function – 函數(shù)名;
iterable – 序列或者可迭代對象;
返回值:通過function過濾后,將返回True的元素保存在迭代器對象中,最后返回這個(gè)迭代器對象(python2.0x版本是直接返回列表list);
二.filter函數(shù)使用
1.filter函數(shù)簡單使用
# !usr/bin/env python # -*- coding:utf-8 _*- """ @Author:何以解憂 @Blog(個(gè)人博客地址): shuopython.com @WeChat Official Account(微信公眾號):猿說python @Github:www.github.com @File:python_process_Pool.py @Time:2020/1/14 21:25 @Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅(jiān)持不懈地積累! """ def check(i): # 如果是偶數(shù)返回 True 否則返回False return True if i%2 == 0 else False if __name__ == "__main__": list1 =[1,2,3,4,5,6] result = filter(check,list1) print(result) print(type(result)) # 將返回的迭代器轉(zhuǎn)為列表list或者元組 print(list(result)) print(type(list(result)))
輸出結(jié)果:
<filter object at 0x0000015127BA7EB8>
<class 'filter'>
[2, 4, 6]
<class 'list'>
2.filter函數(shù)配合匿名函數(shù)Lambda使用
def check_score(score):
if score > 60:
return True
else:
return False
if __name__ == "__main__":
# 成績列表
student_score = {"zhangsan":98,"lisi":58,"wangwu":67,"laowang":99,"xiaoxia":57}
# 篩選成績大于60的成績列表
result = filter(lambda score:score > 60,student_score.values())
# 與上面一行代碼等價(jià)
# result = filter(check_score, student_score.values())
print(result)
print(type(result))
# 將返回的迭代器轉(zhuǎn)為列表list或者元組
print(list(result))
print(type(list(result)))
輸出結(jié)果:
<filter object at 0x000001B761F88FD0>
<class 'filter'>
[98, 67, 99]
<class 'list'>
注意:filter函數(shù)返回的是一個(gè)迭代器對象,往往在使用時(shí)需要先將其轉(zhuǎn)換為列表list或者元祖tuple之后再操作;
python filter函數(shù)其實(shí)和內(nèi)置函數(shù)map()使用方法類似,map()函數(shù)也是將迭代器或者序列中的每一個(gè)元素映射到指定的函數(shù)中,操作完成之后再返回修改后的迭代器對象;
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python實(shí)現(xiàn)繪制3D地球旋轉(zhuǎn)效果
這篇文章主要為大家詳細(xì)介紹了如何利用Python實(shí)現(xiàn)繪制出3D地球旋轉(zhuǎn)的效果,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,需要的可以參考一下2023-02-02
Python實(shí)現(xiàn)隨機(jī)從圖像中獲取多個(gè)patch
經(jīng)常有一些圖像任務(wù)需要從一張大圖中截取固定大小的patch來進(jìn)行訓(xùn)練。本文就來和大家聊聊如何用Python實(shí)現(xiàn)隨機(jī)從圖像中獲取多個(gè)patch,感興趣的可以了解一下2022-08-08
如何理解python接口自動(dòng)化之logging日志模塊
代碼需要經(jīng)歷開發(fā)、調(diào)試、審查、測試或者上線等不同階段,在“測試”時(shí),可能只想看警告和錯(cuò)誤信息,然而在“調(diào)試”時(shí),可能還想看到跟調(diào)試相關(guān)的信息。如果想打印出使用的模塊以及代碼運(yùn)行的時(shí)間,那么代碼很容易變得混亂。使用logging日志模塊,就能很容易地解決2021-06-06
Windows和Linux下使用Python訪問SqlServer的方法介紹
這篇文章主要介紹了Windows和Linux下使用Python訪問SqlServer的方法介紹,本文講解了Windows下配置Python訪問Sqlserver、Linux下配置Python訪問SqlServer等內(nèi)容,需要的朋友可以參考下2015-03-03
python發(fā)送byte數(shù)據(jù)組到tcp的server問題
這篇文章主要介紹了python發(fā)送byte數(shù)據(jù)組到tcp的server問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09
Django異步任務(wù)線程池實(shí)現(xiàn)原理
這篇文章主要介紹了Django異步任務(wù)線程池實(shí)現(xiàn)原理,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12
tensorflow模型文件(ckpt)轉(zhuǎn)pb文件的方法(不知道輸出節(jié)點(diǎn)名)
這篇文章主要介紹了tensorflow模型文件(ckpt)轉(zhuǎn)pb文件(不知道輸出節(jié)點(diǎn)名),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04
Python實(shí)現(xiàn)更改圖片尺寸大小的方法(基于Pillow包)
這篇文章主要介紹了Python實(shí)現(xiàn)更改圖片尺寸大小的方法,結(jié)合實(shí)例形式分析了Python基于Pillow包更改圖片屬性的相關(guān)技巧,需要的朋友可以參考下2016-09-09

