python中的filter函数功能是什么?

filter函数用于筛选序列中满足条件的元素,语法为filter(function, iterable),返回迭代器需转换为列表查看结果;示例包括用lambda筛选偶数及用None去除空值,注意返回类型及自动过滤假值特性。

filter函数用于过滤序列中的元素,只保留满足条件的数据。

功能说明

filter接收两个参数:一个函数和一个可迭代对象。它会把可迭代对象的每个元素传入函数,根据函数返回值是否为True来决定是否保留该元素。

常见用途包括:

  • 从列表中筛选出符合条件的数值
  • 去除空值或无效数据
  • 提取特定类型的元素

使用方法

基本语法是 filter(function, iterable),返回一个迭代器,通常用list()转换成列表查看结果。

示例代码:

# 筛选出偶数
numbers = [1, 2, 3, 4, 5, 6]
evens = list(filter(lambda x: x % 2 == 0, numbers))
print(evens)  # 输出: [2, 4, 6]

筛选非空字符串

texts = ["hello", "", "world", None, "python"] valid = list(filter(None, texts)) # 利用None自动过滤假值 print(valid) # 输出: ['hello', 'world', 'python']

注意事项

filter返回的是迭代器,不能直接打印内容,需要转换类型。如果传入的函数是None,则会自动过滤掉所有相当于False的值,比如0、""、None、False等。

基本上就这些,用起来不复杂但容易忽略返回类型。