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()函数返回的是一个可迭代对象,常用的序列操作如索引、排序等并不适用,需要将其转换为常规序列才能进行更多操作。
