Python中的filter()函数:从列表中过滤出符合条件的元素
发布时间:2023-05-29 02:09:15
Python中的filter()函数是一个非常实用的函数,它可以从列表中过滤出符合条件的元素,然后将这些元素返回成一个新的列表。
在使用filter()函数时,首先需要定义一个函数,这个函数接收一个参数,然后返回True或False。然后filter()函数会遍历列表中的每一个元素,将这个元素作为参数传递给定义的函数进行判断,如果返回值为True,则保留这个元素,最后将所有符合条件的元素返回成一个新的列表。
例如,我们有一个列表,存储着一些数字:
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]
我们想要过滤出所有大于5的数字,我们可以定义一个函数,来判断这个数字是否大于5:
def greater_than_5(num):
if num > 5:
return True
else:
return False
然后,我们可以使用filter()函数来过滤出符合条件的元素:
filtered_numbers = list(filter(greater_than_5, numbers))
这样,我们就可以得到一个新的列表,存储着所有大于5的数字了:
[6, 7, 8, 9]
filter()函数还可以结合lambda表达式使用,这样可以使代码更加简洁:
filtered_numbers = list(filter(lambda x: x > 5, numbers))
这个lambda表达式接收一个参数x,然后返回x是否大于5,这样可以省略掉函数的定义,使代码更加简洁。
除此之外,filter()函数还可以用来过滤一些非真值(比如None、空字符串等):
my_list = [1, None, "hello", [], 0] filtered_list = list(filter(None, my_list))
这个例子中,我们使用filter()函数过滤掉了列表中的非真值(None、空列表、空字符串、0),得到了一个新的列表。
总的来说,filter()函数是一个非常实用的函数,可以用来过滤列表中符合条件的元素,同时结合lambda表达式使用可以简洁代码,同时也可以用来过滤非真值,帮助我们更加方便的处理数据。
