Python中的filter()函数使用方法及实例演示
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()函数,可以实现灵活的数据筛选。
