filter Python · 内置函数
`filter` 根据一个条件函数筛选可迭代对象中的元素,只保留函数返回 `True` 的元素。就像用筛子过滤沙子,只留下符合大小的沙粒。
怎么用
filter(条件函数, 可迭代对象)
小例子
数字 = [1, 2, 3, 4, 5, 6] 偶数 = filter(lambda x: x % 2 == 0, 数字) print(list(偶数))
运行结果
[2, 4, 6]
对比:手动写循环加条件
数字 = [1, 2, 3, 4, 5, 6]
偶数 = []
for x in 数字:
if x % 2 == 0:
偶数.append(x)
print(偶数)
用 `filter` 更简洁。常见使用场景
1. 筛选出满足条件的数据: 成绩 = [85, 92, 78, 60, 95] 及格 = list(filter(lambda x: x >= 60, 成绩)) print(及格) # [85, 92, 78, 60, 95] 2. 过滤掉空字符串: 列表 = ["apple", "", "banana", " ", "cherry"] 非空 = list(filter(lambda s: s.strip() != "", 列表)) print(非空) 3. 清理数据中的 None。
对比:不使用 with 需要手动关闭
f = open("笔记.txt", "w", encoding="utf-8")
f.write("你好")
f.close() # 忘记关闭可能导致数据丢失或占用资源
用 with open 可以自动关闭,更安全。
提醒:- `filter` 返回迭代器。 - 条件函数应该返回布尔值,`None` 或假值也会被过滤掉。 - 如果条件函数是 `None`,则直接过滤掉假值元素。
官方文档:https://docs.python.org/zh-cn/3/library/functions.html#filter
在代码里遇到不认识的词?打开代码点读机,点一下就懂 → ← Python全部词条