更新时间:2022-08-04 来源:黑马程序员 浏览量:
filter函数会对指定序列执行过滤操作。
filter函数的定义如下:
filter(function, iterable)
在上述定义中,第一个参数function可以是函数名称或者None,第二个参数iterable可以是序列、支持迭代的容器或迭代器。返回值为迭代器对象。其中,function函数只能接收一个参数,而且该函数的返回值为布尔值。
filter函数的作用是以参数迭代器中的每个元素分别调用function函数,最后返回的迭代器包含调用结果为True的元素。示例代码如下:
func = lambda x:x % 2 result = filter(func, [1, 2, 3, 4, 5]) print(list(result))
上述示例中,定义了一个匿名函数func,返回某个数取余以后的结果,接着调用filter函数将[1,2,3,4,5]中的每个元素取出来,作为func的参数调用func函数,之后将结果转换为列表的形式显示。
程序输出的结果为:
[1, 3, 5]
为了让大家理解filter函数的作用,接下来,通过一张图来描述上述示例执行的原理,如图7-12所示。
图7-12 filter函数原理图
图7-12分析了上述程序执行的原理。由图可知,程序把原始序列的元素执行取余操作后,将不能被2整除(结果为True)的元素筛选出来构成一个新的列表。
【AI设计】北京143期毕业仅36天,全员拿下高薪offer!黑马AI设计连续6期100%高薪就业
2025-09-19【跨境电商运营】深圳跨境电商运营毕业22个工作日,就业率91%+,最高薪资达13500元
2025-09-19【AI运维】郑州运维1期就业班,毕业14个工作日,班级93%同学已拿到Offer, 一线均薪资 1W+
2025-09-19【AI鸿蒙开发】上海校区AI鸿蒙开发4期5期,距离毕业21天,就业率91%,平均薪资14046元
2025-09-19【AI大模型开发-Python】毕业33个工作日,就业率已达到94.55%,班均薪资20763元
2025-09-19【AI智能应用开发-Java】毕业5个工作日就业率98.18%,最高薪资 17.5k*13薪,全班平均薪资9244元
2025-09-19