filter() 按函数过滤
最后更新:2026-09-22
filter() 按函数过滤
filter(function, iterable) 保留 iterable 中使 function 返回 True 的元素;返回迭代器。
| 分类 | 内置函数 |
|---|---|
| 类型 | 内置函数 |
| Python 版本 | all |
📝 语法
filter(function, iterable)
⚙️ 参数
| function 必选 | 判定函数;传 None 时直接用元素的真值。 |
|---|---|
| iterable 必选 | 要过滤的可迭代对象。 |
返回值:filter 迭代器;可用 list() 转为列表。
💥 异常
TypeError— 当 function 不可调用或 iterable 不可迭代时抛出。
▶ 示例
编辑下方代码,点击运行,在输出面板查看结果:
运行结果:
[2, 4]
🏷️ 相关内置函数
💡 相关案例
更多实战案例即将上线,敬请期待。
❓ 常见问题
Qfilter() 返回的是什么?
A返回 filter 迭代器(惰性),必须 list(filter(...)) 转成列表或遍历它才能拿到结果。
Qfilter(None, lst) 是什么意思?
Afunction 传 None 时按元素真值过滤,等价于 [x for x in lst if x],可一次去掉 0、''、None 等假值。
Qfilter() 和列表推导式哪个好?
A语义等价时推导式 [x for x in lst if cond] 更可读;filter 配合已有函数(如 filter(str.isdigit, s))更简洁。
Qfilter 会立即执行判定函数吗?
A不会。filter 惰性求值,开始迭代时才逐个调用 function;适合处理大数据的链式操作。