国际访客建议访问 Primers 编程伙伴 国际版站点 > Python 教程 > filter 以获得更好的体验。

# Python 的内置函数 filter

请查看 Python 内建函数列表 了解更多相关 API。

说明:过滤数据。

# 函数说明

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

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

!subtitle:说明

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

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

!subtitle:参数

  • fn - 用于过滤的回调函数

    • 可迭代对象的元素会作为参数传给此函数,此函数返回 True 时该元素被保留,返回 False 时,该元素被滤除

    • 如果此参数为 None,则直接判断原本的数据,也就是滤除 0NoneFalse假值

  • iterable - 要过滤的可迭代对象

!subtitle:返回值

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

# 示例

运行示例

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,直接判断原数据

# 推荐阅读

本文 更新于: 2025-11-27 09:37:59 创建于: 2025-11-27 09:37:59