filter函数:使用Python内置的filter函数过滤列表的方法
发布时间:2023-06-22 01:03:25
Python内置的filter函数是一个非常有用的工具,可以对列表中的元素进行过滤操作。该函数接受两个参数, 个参数是一个函数,第二个参数是一个列表或可迭代对象。filter函数会根据 个参数中的函数对第二个参数(即列表)中的元素进行筛选,并将筛选出来的元素放入一个新的列表中返回。
使用方法如下:
1. 定义一个函数,用于过滤列表中不满足条件的元素:
def is_even(n):
# 判断数字是否为偶数
return n % 2 == 0
2. 调用filter函数,传入刚才定义的函数和待过滤的列表:
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] even_numbers = list(filter(is_even, numbers)) print(even_numbers)
这段代码的输出结果为:
[2, 4, 6, 8, 10]
filter函数会遍历传入的列表中的每一个元素,并对其逐一进行判断。如果该元素满足过滤条件(在本例中是能被2整除),则将其添加到新的列表中。
除了传入一个自定义函数作为过滤条件外,filter函数还支持使用匿名函数进行过滤:
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] even_numbers = list(filter(lambda n: n % 2 == 0, numbers)) print(even_numbers)
这段代码和上一段代码的输出结果是一样的。
除了对数值型数据进行过滤外,filter函数也可以用于对字符串、元组等数据类型的操作。例如,如果我们想从一个字符串列表中过滤出只包含字母“a”的字符串,可以这么做:
words = ["apple", "pear", "banana", "avocado"] a_words = list(filter(lambda s: "a" in s, words)) print(a_words)
输出结果是:
["apple", "banana", "avocado"]
filter函数可以被用来过滤任何可迭代的对象,包括元组、集合等,因此它是一个非常实用的工具。它的使用方法简单明了,能够帮助我们快速筛选出我们需要的数据。
