Python的filter函数及其使用示例
python的filter()是一种内置函数,在python中非常常用,它用于在可迭代对象中,将符合特定条件的元素过滤筛选出来。通过这个函数可以使代码变得更加简洁和高效。
语法:filter(function,iterable)
参数1:function,接收一个函数作为参数,该函数接收一个可迭代对象中的元素作为参数,返回一个布尔类型的值。函数将用于过滤筛选元素。
参数2:iterable,接收一个可迭代对象作为参数,表示需要进行筛选的对象。
返回值:filter函数返回一个可迭代对象,该对象包含符合条件的元素。
使用示例:
示例1:筛选列表中的偶数
假设有一个列表,需要从这个列表中筛选出所有的偶数,可以使用以下代码:
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] result = list(filter(lambda x: x % 2 == 0, my_list)) print(result)
输出结果为:
[2, 4, 6, 8, 10]
这里使用lambda表达式来定义一个函数,该函数接收一个参数x,如果x模2的结果为0,即x为偶数,则返回True,否则返回False。然后将该函数作为参数传给filter函数,用于对my_list进行筛选。
示例2:筛选列表中的字符长度大于等于5
假设有一个列表,需要从这个列表中筛选出所有字符长度大于等于5的元素,可以使用以下代码:
my_list = ['apple', 'banana', 'orange', 'grape', 'watermelon'] result = list(filter(lambda x: len(x) >= 5, my_list)) print(result)
输出结果为:
['apple', 'banana', 'orange', 'grape', 'watermelon']
这里使用lambda表达式来定义一个函数,该函数接收一个参数x,如果x的长度大于等于5,则返回True,否则返回False。然后将该函数作为参数传给filter函数,用于对my_list进行筛选。
示例3:筛选字典中value值大于等于80的元素
假设有一个字典,需要从这个字典中筛选出所有value值大于等于80的元素,可以使用以下代码:
my_dict = {'math': 90, 'english': 85, 'history': 92, 'physics': 78}
result = dict(filter(lambda x: x[1] >= 80, my_dict.items()))
print(result)
输出结果为:
{'math': 90, 'english': 85, 'history': 92}
这里使用lambda表达式来定义一个函数,该函数接收一个参数x,如果x的value值大于等于80,则返回True,否则返回False。然后将该函数作为参数传给filter函数,用于对my_dict进行筛选。最后再将得到的结果转换成字典形式。
综上所述,Python的filter函数可以很方便地对可迭代对象进行筛选,是Python编程中非常实用的函数之一。
