约 1422 字

约 7 分钟

#Python 的内置函数 filter

说明:过滤数据。

#函数说明

def filter(fn, iterable):
    '''
    过滤数据

    :param fn: 回调函数,返回 True 时元素保留,返回 False 时去除元素
    :param iterable: 要过滤的可迭代对象
    :return: 过滤后的可迭代对象
    '''

说明

过滤可迭代对象中的元素,得到新的可迭代对象。

采用惰性计算(Lazy Evaluation)的策略,也就是不会立即执行计算,而是在使用结果时才会计算相应的元素。

参数

  • fn - 用于过滤的回调函数
    • 可迭代对象的元素会作为参数传给此函数,此函数返回 True 时该元素被保留,返回 False 时,该元素被滤除
    • 如果此参数为 None,则直接判断原本的数据,也就是滤除 0,None,False 等 假值
  • iterable - 要过滤的可迭代对象

返回值

由过滤后保留的元素组成的可迭代对象。

#示例

numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(filter(lambda x : x%2 == 0, numbers))         # 元素除以 2 余数为 0 时保留,否则滤除,结果是迭代器
print(list(filter(lambda x : x%2 == 0, numbers)))   # 转换为 list
print(list(filter(None, numbers)))                  # fn 为 None,直接判断原数据

>>> Establishing WebAssembly Runtime.

>>> Standby.

Powered by Shift.

#推荐阅读

更新: 2025/10/25

作者: PlanC

创建: 2025/6/9