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

Python中的filter()函数使用方法及实例演示

发布时间:2023-10-01 01:00:39

Python中的filter()函数是用来筛选数据的函数,在给定序列中,根据指定的条件对元素进行过滤,返回满足条件的元素组成的新序列。

filter()函数有两个参数, 个参数是一个函数,用来指定过滤条件,第二个参数是一个序列,可以是列表、元组等。

函数的 个参数应该是一个返回布尔值的函数,也称为谓词函数,用来判断元素是否满足过滤条件。返回True表示保留该元素,返回False表示排除该元素。

下面是filter()函数的基本语法:

filter(function, sequence)

接下来我们通过一些实例来演示filter()函数的使用。

实例1:筛选出列表中的偶数

nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

def is_even(num):
    return num % 2 == 0

result = filter(is_even, nums)
print(list(result))

输出结果为:

[2, 4, 6, 8, 10]

通过定义一个函数is_even(),并将它作为过滤条件传给filter()函数,可以筛选出列表中的偶数。

实例2:筛选出长度大于等于5的字符串

words = ["apple", "banana", "car", "dog", "elephant"]

def is_long(word):
    return len(word) >= 5

result = filter(is_long, words)
print(list(result))

输出结果为:

['apple', 'banana', 'elephant']

定义一个函数is_long(),并将它作为过滤条件传给filter()函数,可以筛选出长度大于等于5的字符串。

实例3:筛选出年龄大于等于18岁的人

persons = [
    {"name": "Alice", "age": 25},
    {"name": "Bob", "age": 17},
    {"name": "Charlie", "age": 20},
    {"name": "David", "age": 30}
]

def is_adult(person):
    return person["age"] >= 18

result = filter(is_adult, persons)
print(list(result))

输出结果为:

[{'name': 'Alice', 'age': 25}, {'name': 'Charlie', 'age': 20}, {'name': 'David', 'age': 30}]

定义一个函数is_adult(),并将它作为过滤条件传给filter()函数,可以筛选出年龄大于等于18岁的人。

总结:

filter()函数可以方便地筛选出满足指定条件的元素,使用它可以简化代码,并提高代码的可读性。通过定义一个返回布尔值的函数,并将它作为过滤条件传给filter()函数,可以实现灵活的数据筛选。