filter()是Python内置函数之一,它的主要功能是筛选序列中的数据,返回一个被筛选后的新序列,可以接收一个参数为函数用于筛选,也可以仅使用一个列表作为参数。
基本语法
filter(function, iterable)
- function:用于筛选的函数,如果为None,则返回 iterable 中所有的元素;
- iterable:可迭代对象,数据源。
返回结果
返回一个新的序列,包含所有“函数返回值为 True”或“可迭代项不为 False”的数据项。
示例说明
示例 1:用filter()过滤列表中的偶数
lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
new_lst = list(filter(lambda x: x % 2 == 0, lst))
print(new_lst)
# 输出结果为 [2, 4, 6, 8, 10]
这里使用了lambda表达式,筛选出列表中所有的偶数,构建成一个新的序列并进行输出。
示例 2:过滤字符串中的空白字符
str = "hello world, welcome to Python!"
new_str = "".join(filter(lambda x: x.strip() != "", str))
print(new_str)
# 输出结果为 helloworld,welcometoPython!
这里使用了strip方法来过滤字符串中的空白字符,然后把过滤后的字符再合并成一个新的字符串输出。
除了以上两个示例,filter()常常和map()一同使用,用于对集合进行筛选和转换,可以大大简化代码的编写。