Python如何用filter函数筛选数据
一.filter函数简介
filter函数主要用来筛选数据,过滤掉不符合条件的元素,并返回一个迭代器对象,如果要转换为列表list或者元祖tuple,可以使用内置函数list()或者内置函数tuple()来转换;
filter函数接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回True或False,最后将返回True的元素放到新列表中,就好比是用筛子,筛选指定的元素;
语法:
filter(function,iterable)
参数:
function–函数名;
iterable–序列或者可迭代对象;
返回值:通过function过滤后,将返回True的元素保存在迭代器对象中,最后返回这个迭代器对象(python2.0x版本是直接返回列表list);
二.filter函数使用
1.filter函数简单使用
#!usr/bin/envpython #-*-coding:utf-8_*- """ @Author:何以解忧 @Blog(个人博客地址):shuopython.com @WeChatOfficialAccount(微信公众号):猿说python @Github:www.github.com @File:python_process_Pool.py @Time:2020/1/1421:25 @Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累! """ defcheck(i): #如果是偶数返回True否则返回False returnTrueifi%2==0elseFalse if__name__=="__main__": list1=[1,2,3,4,5,6] result=filter(check,list1) print(result) print(type(result)) #将返回的迭代器转为列表list或者元组 print(list(result)) print(type(list(result)))
输出结果:
[2,4,6]
2.filter函数配合匿名函数Lambda使用
defcheck_score(score): ifscore>60: returnTrue else: returnFalse if__name__=="__main__": #成绩列表 student_score={"zhangsan":98,"lisi":58,"wangwu":67,"laowang":99,"xiaoxia":57} #筛选成绩大于60的成绩列表 result=filter(lambdascore:score>60,student_score.values()) #与上面一行代码等价 #result=filter(check_score,student_score.values()) print(result) print(type(result)) #将返回的迭代器转为列表list或者元组 print(list(result)) print(type(list(result)))
输出结果:
[98,67,99]
注意:filter函数返回的是一个迭代器对象,往往在使用时需要先将其转换为列表list或者元祖tuple之后再操作;
pythonfilter函数其实和内置函数map()使用方法类似,map()函数也是将迭代器或者序列中的每一个元素映射到指定的函数中,操作完成之后再返回修改后的迭代器对象;
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。