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

Python中的filter()函数-列表筛选器

发布时间:2023-06-22 21:59:22

Python中有一个非常强大的内置函数——filter()函数。这个函数被称作“列表筛选器”,用于将一个列表中的元素按照指定的条件筛选出来。

filter()函数的语法如下:

filter(function, iterable)

其中,function为筛选函数,iterable为需要筛选的列表。它会返回一个迭代器对象,对这个对象进行迭代,就可以得到筛选过后的结果。

下面我们来看几个关于filter()函数的例子。

1.筛选偶数

假设我们有一个列表,需要将其中的偶数筛选出来,代码如下:

lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

result = filter(lambda x: x % 2 == 0, lst)

for i in result:
    print(i)

输出结果为:

2
4
6
8
10

这段代码中,我们使用了lambda函数来筛选偶数。如果一个数x能够被2整除,那么它就是偶数,于是我们可以使用x%2==0来判断x是否为偶数。对lst中的每个元素,filter()函数会依次调用lambda函数进行判断,将符合条件的元素筛选出来。

2.筛选长度大于5的字符串

假设我们有一个字符串列表,需要将其中长度大于5的字符串筛选出来,代码如下:

lst = ['apple', 'banana', 'orange', 'watermelon', 'peach', 'pear']

result = filter(lambda x: len(x) > 5, lst)

for i in result:
    print(i)

输出结果为:

banana
orange
watermelon

这段代码中,我们使用了lambda函数来筛选长度大于5的字符串。对lst中的每个元素,filter()函数会依次调用lambda函数进行判断,将符合条件的元素筛选出来。

3.筛选年龄在20到30岁之间的人

假设我们有一个人员列表,其中每个人有姓名和年龄两个属性,需要将年龄在20到30岁之间的人筛选出来,代码如下:

lst = [{'name': 'Tom', 'age': 18}, {'name': 'Jerry', 'age': 25}, {'name': 'Alice', 'age': 27}, {'name': 'Bob', 'age': 35}]

result = filter(lambda x: x['age'] >= 20 and x['age'] <= 30, lst)

for i in result:
    print(i)

输出结果为:

{'name': 'Jerry', 'age': 25}
{'name': 'Alice', 'age': 27}

这段代码中,我们使用了lambda函数来筛选年龄在20到30岁之间的人。对lst中的每个元素,filter()函数会依次调用lambda函数进行判断,将符合条件的元素筛选出来。注意,我们使用了字典的方式来保存人员信息,并使用x['age']来访问年龄属性。

总结:

filter()函数是Python内置的一个非常实用的函数,可以帮助我们便捷地筛选出满足特定条件的元素。它的使用非常灵活,可以使用lambda函数来编写筛选条件,也可以自定义函数。了解它的用法可以让我们更加高效地处理列表数据。