Filter函数:Python中的Filter函数详解
发布时间:2023-06-06 16:12:53
Filter函数是Python语言中非常常用的内置函数之一。该函数可以接收两个参数, 个参数为函数对象,第二个参数为可迭代对象(iterable),比如列表,元组或集合等等。它会对可迭代对象中的每一个元素调用 个参数(函数对象),只有该函数返回True,才能将该元素添加到过滤后的结果集合中返回。
语法格式:
filter(function, iterable)
其中,function是一个返回值为bool类型的函数对象,接收一个参数;iterable是一个可迭代对象,例如列表、元组、字典或集合等等。
返回值:
filter函数在执行后会返回一个迭代器(iterator),里面包含了所有在iterable中,经过function函数处理后返回True的元素。
注意:
在Python3中,filter函数返回的是一个迭代器对象,也就是在调用该函数后,并不会直接返回一个列表,而是返回的一个可以迭代的对象。因此,如果需要将结果转换成其他类型,需要使用list或tuple函数进行转换。
示例:
如下所示,在一个列表中筛选出来所有的偶数并输出。
# 定义一个函数:筛选出所有偶数
def filter_even(n):
if n % 2 == 0: # 判断可迭代元素是否为偶数
return True
lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
result = filter(filter_even, lst) # 使用filter函数进行筛选
print(list(result)) # 将结果转换成列表并输出
输出结果为:
[2, 4, 6, 8, 10]
在这个例子中,我们定义了一个名为filter_even的函数,用于判断每一个元素是否为偶数。然后,我们将该函数和列表lst传给filter函数进行筛选,最后用list函数将筛选后的结果转换成列表并输出。输出结果为列表中的所有偶数。
在Python的日常开发中,filter函数非常常用。比如筛选出一个字典中满足某些条件的键值对、筛选出一组数据中的无效数据、进行序列化时过滤一些无用字符等等。掌握filter函数,能够让你的开发变得更加高效、简便。
