Python面试题更新 2026-08-05

请解释 Python 中内置 filter 函数的功能,并说明其具体用法及典型应用场景。

技术原理Python

考察说明

考查对 Python 内置高阶函数 filter 的理解,包括其作用、参数和基本使用方式。

回答思路

  1. 【回答框架 1】filter 函数用于根据指定条件过滤可迭代对象中的元素,返回一个迭代器,其中仅包含使条件函数返回 True 的元素。其基本语法为 filter(function, iterable),function 可以是返回布尔值的函数或 None。
  2. 【回答框架 2】当 function 为 None 时,filter 会保留可迭代对象中所有真值元素,即布尔值为 True 的元素,相当于去除了假值。例如 filter(None, [0, 1, False, 2]) 返回 [1, 2](实际为迭代器,需转换为列表)。
  3. 【回答框架 3】在实际使用中,filter 常与 lambda 表达式配合,例如过滤出列表中大于 10 的数:list(filter(lambda x: x > 10, numbers))。也可使用预先定义的函数,如 filter(str.isdigit, ['a', '1', 'b3'])。
  4. 【回答框架 4】filter 返回的是迭代器(在 Python 3 中),因此需要用 list() 或遍历来获取结果。它适合处理简单的过滤逻辑,若逻辑复杂或需同时转换数据,则推荐使用列表推导式或生成器表达式,可读性更佳。
  5. 【关键点 1】filter(function, iterable) 返回迭代器,包含满足条件的元素。
  6. 【关键点 2】function 为 None 时过滤真值元素。
  7. 【关键点 3】Python 3 中 filter 返回迭代器,需 list() 转换。
  8. 【关键点 4】可与 lambda 结合简化代码,但复杂逻辑建议用列表推导式。
  9. 【易错点 1】filter 返回的是迭代器,直接打印不会显示元素列表,需要转换。
  10. 【易错点 2】function 必须返回布尔值或可被解释为布尔值的值,否则结果可能意外。
  11. 【易错点 3】在 Python 2 中 filter 返回列表,版本差异需要注意。