python3 filter函数
Python的filter()函数是一个非常实用的内建函数,它可以用于过滤序列,它的基本用法是接收一个函数和一个序列作为输入,然后返回一个迭代器,该迭代器生成序列中使函数返回值为真的元素。
以下是对Python filter()函数的详细讲解和示例:
1、语法结构:
Python的filter()函数的语法结构如下:
```python
filter(function, iterable)
```
function:这是一个函数,它将作用于iterable的每一个元素,这个函数应该返回True或False。
iterable:这是一个序列(如列表、元组或字符串)。
2、使用方式:
filter()函数的使用方式主要有两种:
使用匿名函数:可以使用Python的lambda表达式创建一个简单的单行函数。
使用命名函数:也可以使用定义好的命名函数。
3、示例:
假设我们有一个整数列表,我们想从中筛选出所有的偶数,我们可以使用filter()函数配合一个lambda函数来实现这一目标。
```python
numbers = [1, 2, 3, 4, 5, 6]
even_numbers = filter(lambda x: x % 2 == 0, numbers)
print(list(even_numbers)) # 输出:[2, 4, 6]
```
在上面的例子中,lambda x: x % 2 == 0
是一个匿名函数,它接受一个参数x,如果x是偶数(即x除以2的余数等于0),则返回True,否则返回False,filter()函数将这个函数应用于numbers列表的每一个元素,只保留那些使得函数返回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]
```
在这个例子中,is_even
是一个命名函数,它的功能和前面的lambda函数完全相同。
4、注意事项:
filter()函数返回的是一个迭代器,所以如果你想一次性看到所有的结果,你需要将其转换为列表或其他可迭代的数据类型。
filter()函数不会修改原始的序列,而是返回一个新的序列。
filter()函数的第一个参数必须是一个函数,不能是一个表达式或一个值。
以上就是Python filter()函数的基本用法和示例,通过这个函数,你可以很容易地从序列中筛选出满足特定条件的元素。