Python中的filter()函数使用方法解析
Python中的filter()函数是一种内置函数,它通过给定的函数对给定序列进行过滤,返回一个新的序列。该函数接受两个参数, 个为函数,第二个为序列。其中,函数参数可以是任何可调用对象,序列参数可以是任何可迭代对象。
使用filter()函数可以很方便地过滤出符合条件的元素,从而操作数据集合,实现快速排序和数据筛选等功能。下面,我们就来详细介绍Python中的filter()函数的使用方法。
语法格式
filter()函数的语法格式如下:
filter(function, iterable)
其中,function为过滤函数,iterable为可迭代对象。
函数参数function可以是一个函数、一个lambda表达式、或任何可调用对象。在该函数中,需要传入一个参数来判断是否符合要求,符合要求则返回True,不符合则返回False。
例如,定义一个求平方数的函数:
def square(num):
return num ** 2
那么,我们就可以使用filter()函数来对序列进行过滤,过滤出大于5的平方数:
nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] result = filter(lambda x: square(x) > 5, nums) print(list(result))
输出结果为:[3, 4, 5, 6, 7, 8, 9, 10]
在这个例子中,使用了lambda表达式来表示函数参数function,该表达式接受一个参数x,并返回x的平方值是否大于5,符合条件则返回True,否则返回False。
返回值
filter()函数返回一个可迭代对象,其中包含了符合条件的元素。该对象可以被转换为序列,使用list()函数来转换。
使用示例
下面给出一些filter()函数的使用示例:
示例1:筛选出偶数
nums = [1, 2, 3, 4, 5, 6] result = filter(lambda x: x % 2 == 0, nums) print(list(result))
输出结果为:[2, 4, 6]
在这个例子中,使用了lambda表达式来表示函数参数function,判断x是否为偶数,符合条件则返回True,否则返回False。
示例2:过滤出长度大于3的字符串
words = ["apple", "banana", "grape", "pineapple"] result = filter(lambda x: len(x) > 3, words) print(list(result))
输出结果为:['apple', 'banana', 'grape', 'pineapple']
在这个例子中,使用了lambda表达式来表示函数参数function,判断x的长度是否大于3,符合条件则返回True,否则返回False。
示例3:过滤出非零元素
nums = [0, 1, 2, 0, 3, 4, 0, 5] result = filter(lambda x: x != 0, nums) print(list(result))
输出结果为:[1, 2, 3, 4, 5]
在这个例子中,使用了lambda表达式来表示函数参数function,判断x是否为零,如果不是,则返回True,否则返回False。
总结
filter()函数是Python中非常常用的一个内置函数,可以方便地对序列进行筛选和过滤,基于函数判断,来返回符合条件的元素序列。使用它可以实现很多功能,我们应该多加掌握和使用。
