Python是一门高级编程语言,由于其简单易学、语法简洁、开发效率高等优点,近年来被广泛应用于数据分析、机器学习、Web开发等领域 。Python内置函数是Python语言的重要组成部分,其中filter、map、reduce是Python内置函数中比较常用、也比较重要的三个函数,本文将从多个角度对这三个函数进行详细介绍 。
一、filter函数
文章插图
filter函数是Python内置函数之一,用于过滤序列中的元素,返回一个满足条件的新序列 。filter函数的基本语法为:
filter(function, iterable)
其中,function是一个函数,用于对序列中的每个元素进行判断,返回True或False;iterable是一个可迭代对象,如列表、元组、字符串等 。filter函数会对iterable中的每个元素调用function函数,将返回True的元素放入新序列中返回 。
例如,下面的代码使用filter函数过滤出列表中的偶数:
```python
nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
result = filter(lambda x: x % 2 == 0, nums)
print(list(result)) # [2, 4, 6, 8, 10]
```
在上面的代码中,lambda函数用于判断列表中的每个元素是否为偶数,filter函数对nums中的每个元素调用lambda函数,将返回True的元素放入新列表result中 。
二、map函数
map函数是Python内置函数之一,用于对序列中的每个元素进行操作,返回一个新序列 。map函数的基本语法为:
map(function, iterable)
其中,function是一个函数,用于对序列中的每个元素进行操作;iterable是一个可迭代对象,如列表、元组、字符串等 。map函数会对iterable中的每个元素调用function函数,将返回值放入新序列中返回 。
例如,下面的代码使用map函数对列表中的每个元素进行平方操作:
```python
nums = [1, 2, 3, 4, 5]
result = map(lambda x: x ** 2, nums)
print(list(result)) # [1, 4, 9, 16, 25]
```
在上面的代码中,lambda函数用于对列表中的每个元素进行平方操作,map函数对nums中的每个元素调用lambda函数,将返回值放入新列表result中 。
【Python内置函数之filter map reduce介绍】三、reduce函数
reduce函数是Python内置函数之一,用于对序列中的元素进行累积操作,返回一个结果 。reduce函数的基本语法为:
reduce(function, iterable)
其中,function是一个函数,用于对序列中的元素进行累积操作;iterable是一个可迭代对象,如列表、元组、字符串等 。reduce函数会对iterable中的每个元素调用function函数,将返回值累积起来返回 。
例如,下面的代码使用reduce函数对列表中的元素进行累加操作:
```python
nums = [1, 2, 3, 4, 5]
result = reduce(lambda x, y: x + y, nums)
print(result) # 15
```
在上面的代码中,lambda函数用于对列表中的元素进行累加操作,reduce函数对nums中的每个元素调用lambda函数,将返回值累积起来返回 。
四、三个函数的比较
filter、map、reduce三个函数都是Python内置函数中比较常用、也比较重要的函数,它们的作用也不尽相同,下面对它们进行比较:
1. filter函数用于过滤序列中的元素,返回一个满足条件的新序列;map函数用于对序列中的每个元素进行操作,返回一个新序列;reduce函数用于对序列中的元素进行累积操作,返回一个结果 。
2. filter、map、reduce三个函数都需要一个函数作为参数,用于对序列中的元素进行操作或判断 。
3. filter、map、reduce三个函数都可以用lambda函数作为参数,简化代码 。
4. filter、map、reduce三个函数返回的结果类型不同,filter函数返回一个序列,map函数返回一个序列,reduce函数返回一个结果 。
推荐阅读
- Python基于os.environ从windows获取环境变量
- 举例详解Python中的split函数的使用方法
- python解释器如何实现字典合并?
- 如何创建ndarray数组?
- 详细解析Python中的变量的数据类型
- Python中处理字符串之isalpha方法的使用
- python不等号怎么表示?
- python中如何使用pandas实现行数据添加?
- 用Python编写一个基于终端的实现翻译的脚本
- EXCEL2010中用TRIM函数去除空格介绍与使用方法?