欢迎访问宙启技术站
智能推送

Python函数filter()使用实例

发布时间:2023-06-15 04:38:18

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表达式,来判断每一个元素是否是偶数。