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

Python filter()函数的用途与实例介绍

发布时间:2023-06-25 07:33:40

Python filter()函数是一个内置的高阶函数,用于过滤一个序列(列表、元组等)中的元素,返回一个过滤后的可迭代对象,即过滤后的序列。filter()函数的语法格式如下:

filter(function, iterable)

其中,function是自定义的过滤函数(也可以使用lambda表达式),iterable是被过滤的序列。

filter()函数的运行流程为:对iterable中的每个元素应用function函数,如果函数返回True,则将该元素添加到过滤后的序列中。

filter()函数常用于数据处理、数据筛选和数据清洗等领域,可以实现简单条件筛选、类型判断、去重等功能。下面通过实例介绍filter()函数在实际应用中的用途。

1. 筛选出偶数

以下代码使用filter()函数筛选出一个列表中的偶数:

nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
result = filter(lambda x: x % 2 == 0, nums)
print(list(result))

输出结果为:

[2, 4, 6, 8, 10]

2. 筛选出字符串中的数字

以下代码使用filter()函数筛选出一个字符串中的数字:

s = 'Python 3.9.4'
result = filter(lambda x: x.isdigit(), s)
print(''.join(list(result)))

输出结果为:

394

3. 筛选出列表中的正浮点数

以下代码使用filter()函数筛选出一个列表中的正浮点数:

nums = [1.2, -2, 3, -4.5, 6.7, -8, 9.0]
result = filter(lambda x: isinstance(x, float) and x > 0, nums)
print(list(result))

输出结果为:

[1.2, 6.7, 9.0]

4. 筛选出字典中某个key的值

以下代码使用filter()函数筛选出一个字典中某个key的值:

d = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
key = 'b'
result = filter(lambda x: x[0] == key, d.items())
print(list(result)[0][1])

输出结果为:

2

5. 筛选出元组中长度大于3的子元组

以下代码使用filter()函数筛选出一个元组中长度大于3的子元组:

t = ((1, 2, 3), (4, 5), (6, 7, 8, 9), (10,))
result = filter(lambda x: len(x) > 3, t)
print(tuple(result))

输出结果为:

((6, 7, 8, 9),)

以上就是filter()函数在实际应用中的用途和实例介绍。需要注意的是,由于filter()函数返回的是一个可迭代对象,常用的序列操作如索引、排序等并不适用,需要将其转换为常规序列才能进行更多操作。