Python学习第41课-高阶内置函数filter()

【每天几分钟,从零入门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 条评论)
   
验证码:

相关文章

推荐文章

'); })();