欢迎访问宙启技术站
智能推送

Python的filter函数及其使用示例

发布时间:2023-05-24 19:30:28

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编程中非常实用的函数之一。