Python中filter()函数的参数及返回值分析
发布时间:2023-12-26 00:36:10
filter()函数是Python中的内置函数,用于构建一个新的迭代器,其中只包含满足指定条件的元素。
filter()函数的参数包括两个: 个参数是一个函数,第二个参数是一个可迭代对象(如列表、元组、字典、集合等)。函数需要有一个参数,并返回一个布尔值。
filter()函数的返回值是一个迭代器对象,其中只包含满足条件的元素。
下面是一个使用filter()函数的示例:
# 示例一:使用filter()函数筛选出偶数 lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] filtered_lst = filter(lambda x: x % 2 == 0, lst) print(list(filtered_lst)) # 输出:[2, 4, 6, 8, 10] # 示例二:使用filter()函数筛选出长度大于等于5的字符串 words = ["apple", "banana", "orange", "kiwi", "melon", "grape", "pear", "watermelon"] filtered_words = filter(lambda x: len(x) >= 5, words) print(list(filtered_words)) # 输出:['apple', 'banana', 'orange', 'melon', 'grape', 'watermelon']
在示例一中,使用filter()函数筛选出列表lst中的偶数,通过lambda表达式定义条件,即返回值为x%2==0。filtered_lst为迭代器对象,使用list()函数将其转换为列表输出。
在示例二中,使用filter()函数筛选出字符串列表words中长度大于等于5的字符串。同样使用lambda表达式定义条件,即返回值为len(x) >= 5。filtered_words为迭代器对象,使用list()函数将其转换为列表输出。
需要注意的是,使用filter()函数时,函数 个参数要么是None,要么是一个函数。如果 个参数是None,则会根据第二个参数的元素的真值来完成筛选。例如:filter(None, [0, 1, False, True, "", "hello"]) 返回的是[1, True, "hello"]。这相当于使用一个默认的函数定义条件。
综上所述,filter()函数是Python中非常有用的内置函数之一,可以方便地对可迭代对象进行筛选操作。通过传入一个函数作为条件,可实现灵活而高效的元素过滤。
