Python中的高阶函数:filter()教程
发布时间:2023-06-08 05:51:44
在Python中,高阶函数指的是可以接受函数作为参数或返回函数的函数。其中,filter()是一种非常常用的高阶函数,它可以用于筛选序列中的元素。
filter()函数的语法如下:
filter(function, iterable)
其中,function表示过滤函数,它必须是一个接受一个参数并返回布尔值的函数。iterable表示可迭代对象,如列表、元组、字符串等。
filter()函数会遍历可迭代对象,并将其中的每一个元素传递给过滤函数进行判断。若过滤函数返回True,则该元素保留在新生成的可迭代对象中;若返回False,则该元素被舍弃。
下面是一个例子:
# 筛选出列表中所有的偶数 nums = [1, 2, 3, 4, 5, 6, 7, 8, 9] evens = list(filter(lambda x: x % 2 == 0, nums)) print(evens) # 输出 [2, 4, 6, 8]
在这个例子中,传递给filter()的函数是一个lambda表达式,它判断元素是否为偶数。由于filter()函数返回的是一个迭代器对象,因此需要使用list()函数将其转换为列表。
下面再来看一个例子,该例子使用filter()函数筛选出长度大于等于5的字符串:
# 筛选出长度大于等于5的字符串 words = ['apple', 'banana', 'orange', 'pear', 'grape'] long_words = list(filter(lambda x: len(x) >= 5, words)) print(long_words) # 输出 ['apple', 'banana', 'orange', 'grape']
同样地,该例子中传递给filter()的函数也是一个lambda表达式,它判断字符串的长度是否大于等于5。
filter()函数的应用场景非常广泛,它可以用于筛选出特定条件的元素,或者删除不需要的元素。同时,filter()函数也可以与其他函数一起使用,如map()函数,来实现更复杂的操作。
