2.5.2 filter方法与数据筛选

Filterfilter方法的作用是筛选序列中的数据,它的语法是filter(function,iterable)。

具体来讲,该方法的第1个参数是函数,用来设置过滤规则;第2个参数指定待操作的序列。在执行该方法时,会根据过滤规则过滤掉序列中不符合要求的元素。在下面的FilterDemo.py代码中将基于Python 3演示filter函数的用法。


01 def checkEvenNum(num):
02     return num % 2 == 0
03 newList=filter(checkEvenNum,[1,2,3,4])
04 print(list(newList)) # [2, 4]
05 newList=filter(lambda x: x % 2 == 0,[1,2,3,4])
06 print(list(newList)) # [2, 4]

在第1行和第2行里,我们定义了一个判断偶数的checkEvenNum方法。在第3行的filter方法里,第1个参数是checkEvenNum方法,第2个参数是一个数字序列,该filter方法会把根据checkEvenNum方法过滤后的结果返回给newList对象。在第4行使用时,同样需要转换成list类型。

在第5行里我们演示了第1个参数是lambda表达式的调用方法,效果也是过滤奇数。从这个案例中,我们能看到filter方法的“过滤”作用。