【每天几分钟,从零入门python编程的世界!】
今天我们学习Python中的高阶内置函数filter()。
●描述
filter()函数用于过滤掉一个可迭代对象中不符合条件的元素,返回一个可迭代对象。如果要把filter()的返回值转换成列表,可以使用list()来转换。
该函数有两个参数,第一个参数为函数,用来对第二个参数进行判断,第二个参数为可迭代对象,即被过滤/筛选的对象,这个对象中的每一个元素,作为参数传递给函数进行判断,该函数返回True或False,最后将返回True的元素放到可迭代对象序列中。
●语法
filter(function,iterable)
即filter(函数,可迭代对象)
●参数
function:判断函数,用于对iterable中的元素进行判断和筛选。
iterable:可迭代对象,被过滤的对象。
●返回值
返回一个可迭代对象。
实例1:
假设你是一个互联网金融从业人员,有很多用户需要申请金融服务,他们通过你的互联网平台提交了个人信息,由于用户有可能会有千百万,完全靠人工审核是不可能的,假如你需要通过程序来做一个信息的初步筛选,比如筛选出长度大于20的名字,你把这样长度的名字认为是虚假信息。
names=["Tom","Jimmy","Jack","Monkey D abcdefghigk Lufy","$^&*())))jhdhnfnslniwi73949^*(&$)_"]
def fake_name(name):
return len(name)>20
fake_name_list=list(filter(fake_name,names))
print(fake_name_list)
#运行结果:
["Monkey D abcdefghigk Lufy","$^&*())))jhdhnfnslniwi73949^*(&$)_"]
当然实际情况中要判断的条件不止一个,我们只是以长度大于20这个条件为例进行说明。
实例2:
过滤出列表中所有的奇数。
my_list=[1,2,3,4,5,6,7,8,9,10]
def is_odd(n):
return n % 2 == 1
new_list=list(filter(is_odd,my_list))
print(new_list)
运行结果:
[1,3,5,7,9]
实例3:
过滤出1-100中平方根等于整数的数。
import math
def is_sqr(x):
math.sqrt(x) % 1 == 0
new_list=list(filter(is_sqr(x),range(1,101)))
print(new_list)
运行结果:
[1,4,9,16,25,36,49,64,81,100]
我是时问新,欢迎关注我。跟我一起从零开始学习Python,每天花一点时间,开启python编程新世界的大门,领略新的风光,让人生多一种可能!
留言与评论(共有 0 条评论) |