Python filter()接收或舍弃数据

  • Post category:Python

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()一同使用,用于对集合进行筛选和转换,可以大大简化代码的编写。