一、基本语法与核心功能
`filter`是Python内置的高阶函数,用于从可迭代对象中筛选满足特定条件的元素,返回一个迭代器(Python3中)。其语法为:
python
filter(function, iterable)
二、典型应用场景
1. 简单条件筛选
python
numbers = [1, 2, 3, 4, 5]
even = list(filter(lambda x: x % 2 == 0, numbers)) 输出:[2, 4]
2. 数据清洗
python
inputs = [”, ‘hello’, ‘ ‘, None]
valid = list(filter(None, inputs)) 输出:[‘hello’, ‘ ‘]
3. 复杂条件筛选
python
def is_prime(n):
return n > 1 and all(n % i != 0 for i in range(2, int(n0.5)+1))
primes = list(filter(is_prime, range(2, 30))) 输出:[2,3,5,…,29]
4. 与其他函数结合
python
squared_evens = list(map(lambda x: x2, filter(lambda x: x%2==0, numbers)))
三、与Lambda表达式及列表推导式对比
1. Lambda表达式
python
words = [“apple”, “banana”, “cherry”]
long_words = list(filter(lambda w: len(w) > 5, words)) 输出:[‘banana’, ‘cherry’]
2. 列表推导式
python
使用列表推导式筛选偶数
even = [x for x in numbers if x % 2 == 0]
四、注意事项与优化策略
1. 迭代器转换:`filter`返回迭代器,需用`list`、`tuple`等转换为列表才能直接查看结局。
2. 性能考虑:
3. 错误排查:
五、拓展资料与选择建议
| 场景 | 推荐技巧 | 缘故 |
| 简单条件筛选 | `filter` + Lambda | 代码简洁,惰性计算节省内存 |
| 复杂条件或多步处理 | 列表推导式 | 可读性更高,支持多重条件判断 |
| 大数据处理 | 生成器表达式 | 惰性计算避免内存溢出 |
| 频繁查找 | 字典键值映射 | 哈希表查找速度远高于遍历筛选 |
详细参考来源:。如需进一步了解Excel中的`FILTER`函数用法,可参考。