1.说明
filter()函数用于过滤序列,它会过滤掉不合格的数据,留下合格的数据,filter函数返回的结果是可迭代对象。
它之所以被称为高级语法,是因为它不容易正确理解和使用,而且必须与之合作lambda表达式。
2.语法
filter(function,iterable)
3.参数
function -- 判断函数。
iterable -- 可迭代对象。
4.返回值
返回列表。
5.实例
fromcollectionsimportIterable deffunc(x): print("接收参数"+str(x)) returnx%2==0 lst=[1,2,5,6,7] res=filter(func,lst) #res是一个可迭代对象 print(isinstance(res,Iterable),type(res)) foriteminres: print(item)
filter函数的返回值是一个可迭代的对象,这是关键,这就是为什么我说filter函数是高级语法。
为什么不返回列表?,如果列表返回,则在在filter函数执行过程中,必须对列表中的每个数据进行2取模操作,这是浪费空间。因此,filter在实现过程中采用迭代器技术,将计算延迟到filter函数返回结果的通过。
通过本文的研究,我们发现了filter函数的返回值,并掌握了过滤序列数据的方法。
(推荐操作系统:windows7系统Python 3.9.1,DELL G3电脑。)