Python函数filter()使用实例
Python中的函数filter()是一种内置函数,主要用于对一个序列进行过滤操作。它接受两个参数,第一个参数是一个函数,第二个参数是一个序列。函数filter()的作用是,对第二个参数序列中的每一个元素,依次应用第一个参数函数,然后根据函数返回值的真假,决定是否保留该元素。如果函数返回真,那么该元素被保留下来;如果函数返回假,则该元素被过滤掉。
下面我们来看一个使用实例。
假设我们有一个包含一些整数的列表,现在我们要从这个列表里过滤掉奇数,只保留偶数。我们可以这样写一个函数:
def is_even(n):
if n % 2 == 0:
return True
else:
return False
这个函数接受一个整数n,如果n是偶数,则返回True,否则返回False。
现在,我们可以使用filter()函数来过滤列表中的元素。我们首先定义一个列表:
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
然后,调用filter()函数,将我们刚才写的is_even()函数作为第一个参数,my_list作为第二个参数:
result = filter(is_even, my_list)
这样,我们得到的result就是一个filter对象,它里面只包含偶数,也就是2, 4, 6, 8, 10这几个数字。现在,我们可以将result转换为列表,来查看它的内容:
result_list = list(result)
print(result_list)
输出结果为:
[2, 4, 6, 8, 10]
可以看到,这个列表中只包含我们想要的偶数,奇数全部被过滤掉了。
另外,我们也可以使用lambda函数来简化上面的操作,将is_even()函数替换为一个lambda表达式:
result = filter(lambda n: n % 2 == 0, my_list)
这样,我们就不用再定义一个函数了,直接在filter()中使用lambda表达式,来判断每一个元素是否是偶数。
