Python中的filter函数:如何过滤出一个列表中的所有偶数?
发布时间:2023-06-19 02:18:23
在Python中,可以使用filter()函数来过滤一个列表中的元素。filter()函数接受两个参数:一个函数和一个序列。该函数接受一个元素作为参数,并返回True或False。如果函数返回True,则元素会被保留在序列中,否则将被过滤掉。
如果要过滤出一个列表中的所有偶数,可以使用以下代码:
def is_even(num):
return num % 2 == 0
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_list = list(filter(is_even, my_list))
print(even_list)
首先定义一个函数is_even(),该函数接受一个数字作为参数,并返回该数字是否为偶数。然后定义一个列表my_list,包含了一些数字。接着使用filter()函数过滤出my_list中的所有偶数,并将结果存储在一个新的列表even_list中。最后将even_list打印出来,输出结果为:
[2, 4, 6, 8, 10]
可以看到,filter()函数过滤出了原列表中的所有偶数,结果存储在新的列表中。
除了使用命名函数来过滤列表中的元素,还可以使用匿名函数(lambda函数)来实现相同的功能。以下是使用lambda函数来过滤出偶数的代码:
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] even_list = list(filter(lambda x: x % 2 == 0, my_list)) print(even_list)
在上面的代码中,使用lambda函数来定义一个匿名函数,判断该函数接受的参数是否为偶数,然后使用filter()函数过滤出原列表中的所有偶数,最后打印结果。输出结果同样为:
[2, 4, 6, 8, 10]
总的来说,使用filter()函数可以方便地过滤一个列表中的元素。只需要定义一个用于过滤的函数或lambda函数,然后将其作为参数传递给filter()函数即可。使用该函数可以简化代码,使代码更易于阅读和维护。
