`filter()` 函数是 Python 中用于过滤序列的内置函数,它接受两个参数:一个函数和一个可迭代对象。`filter()` 函数会将可迭代对象中的每个元素传递给函数进行判断,并返回一个迭代器,其中包含所有函数返回值为 `True` 的元素。
基本用法
```python
过滤出列表中的所有偶数
def is_even(n):
return n % 2 == 0
numbers = [1, 2, 3, 4, 5, 6]
even_numbers = filter(is_even, numbers)
print(list(even_numbers)) 输出: [2, 4, 6]
```
使用匿名函数(lambda)
```python
使用lambda函数过滤出列表中的所有偶数
numbers = [1, 2, 3, 4, 5, 6]
even_numbers = filter(lambda x: x % 2 == 0, numbers)
print(list(even_numbers)) 输出: [2, 4, 6]
```
进阶技巧
`filter()` 函数可以与其他函数结合使用,例如 `map()` 和 `reduce()`,实现更复杂的数据处理逻辑。
```python
把列表里的数字都平方
numbers = [1, 2, 3, 4, 5]
squared = map(lambda x: x2, numbers)
print(list(squared)) 输出: [1, 4, 9, 16, 25]
```
注意事项
`filter()` 函数返回的是一个迭代器对象,如果要转换为列表,可以使用 `list()` 函数进行转换。
`filter()` 函数中的函数必须返回 `True` 或 `False`,用来决定是否保留这个元素。
希望这些信息对你有帮助!