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

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函数可以被用来过滤任何可迭代的对象,包括元组、集合等,因此它是一个非常实用的工具。它的使用方法简单明了,能够帮助我们快速筛选出我们需要的数据。