python 高阶函数简单介绍


Posted in Python onFebruary 19, 2021

把函数作为参数传入,这样的函数称为高阶函数,高阶函数是函数式编程的体现。函数式编程就是指这种高度抽象的编程范式。

1.体验高阶函数

在Python中,abs()函数可以完成对数字求绝对值计算。

abs(-10) # 10

round()函数可以完成对数字的四舍五入计算。

round(1.2) # 1
round(1.9) # 2

需求:任意两个数字,按照指定要求整理数字后再进行求和计算。

方法1

def add_num(a, b):
  return abs(a) + abs(b)


result = add_num(-1, 2)
print(result) # 3

方法2

def sum_num(a, b, f):
  return f(a) + f(b)


result = sum_num(-1, 2, abs)
print(result) # 3

注意:两种方法对比之后,发现,方法2的代码会更加简洁,函数灵活性更高。

函数式编程大量使用函数,减少了代码的重复,因此程序比较短,开发速度较快。

2.内置高阶函数

2.1 map()

map(func, lst),将传入的函数变量func作用到lst变量的每个元素中,并将结果组成新的列表(Python2)/迭代器(Python3)返回。

需求:计算list1序列中各个数字的2次方。

list1 = [1, 2, 3, 4, 5]


def func(x):
  return x ** 2


result = map(func, list1)

print(result) # <map object at 0x0000013769653198>
print(list(result)) # [1, 4, 9, 16, 25]

2.2 reduce()

reduce(func,lst),其中func必须有两个参数。每次func计算的结果继续和序列的下一个元素做累积计算。

注意:reduce()传入的参数func必须接收2个参数。

需求:计算list1序列中各个数字的累加和。

import functools

list1 = [1, 2, 3, 4, 5]


def func(a, b):
  return a + b


result = functools.reduce(func, list1)

print(result) # 15

2.3 filter()

filter(func, lst)函数用于过滤序列, 过滤掉不符合条件的元素, 返回一个 filter 对象。如果要转换为列表, 可以使用 list() 来转换。

list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]


def func(x):
  return x % 2 == 0


result = filter(func, list1)

print(result) # <filter object at 0x0000017AF9DC3198>
print(list(result)) # [2, 4, 6, 8, 10]

以上就是python 高阶函数简单介绍的详细内容,更多关于python 高阶函数的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
简单讲解Python中的数字类型及基本的数学计算
Mar 11 Python
python爬取足球直播吧五大联赛积分榜
Jun 13 Python
Django ManyToManyField 跨越中间表查询的方法
Dec 18 Python
python实现可逆简单的加密算法
Mar 22 Python
python通过http下载文件的方法详解
Jul 26 Python
在OpenCV里使用Camshift算法的实现
Nov 22 Python
python为什么会环境变量设置不成功
Jun 23 Python
Java byte数组操纵方式代码实例解析
Jul 22 Python
Python离线安装各种库及pip的方法
Nov 28 Python
Python解析微信dat文件的方法
Nov 30 Python
python超详细实现完整学生成绩管理系统
Mar 17 Python
全网非常详细的pytest配置文件
Jul 15 Python
如何用Matlab和Python读取Netcdf文件
Feb 19 #Python
python中最小二乘法详细讲解
Feb 19 #Python
python中scipy.stats产生随机数实例讲解
Feb 19 #Python
python的scipy.stats模块中正态分布常用函数总结
Feb 19 #Python
python+opencv实现车道线检测
Feb 19 #Python
python UIAutomator2使用超详细教程
Feb 19 #Python
Python实现曲线拟合的最小二乘法
Feb 19 #Python
You might like
PHP连接MSSQL时nvarchar字段长度被截断为255的解决方法
2014/12/25 PHP
写一段简单的PHP建立文件夹代码
2015/01/06 PHP
phpstudy默认不支持64位php的解决方法
2017/02/20 PHP
如何修改Laravel中url()函数生成URL的根地址
2017/08/11 PHP
PHP实现git部署的方法教程
2017/12/19 PHP
javascript 获取表单file全路径
2009/12/31 Javascript
JavaScript基础语法让人疑惑的地方小结
2012/05/23 Javascript
jquery实现带单选按钮的表格行选中时高亮显示
2013/08/01 Javascript
ParseInt函数参数设置介绍
2014/01/02 Javascript
详解JS函数重载
2014/12/04 Javascript
JavaScript数组Array对象增加和删除元素方法总结
2015/01/20 Javascript
简单解析JavaScript中的__proto__属性
2016/05/10 Javascript
Bootstrap实现圆角、圆形头像和响应式图片
2016/12/14 Javascript
JS实现的系统调色板完整实例
2016/12/21 Javascript
Bootstrap CSS使用方法
2016/12/23 Javascript
微信小程序的动画效果详解
2017/01/18 Javascript
vue组件中使用iframe元素的示例代码
2017/12/13 Javascript
angularJs-$http实现百度搜索时的动态下拉框示例
2018/02/27 Javascript
如何实现小程序tab栏下划线动画效果
2019/05/18 Javascript
单线程JavaScript实现异步过程详解
2020/05/19 Javascript
详解vite2.0配置学习(typescript版本)
2021/02/25 Javascript
分享python数据统计的一些小技巧
2016/07/21 Python
Python学习笔记之Django创建第一个数据库模型的方法
2019/08/07 Python
python英语单词测试小程序代码实例
2019/09/09 Python
Scrapy中如何向Spider传入参数的方法实现
2020/09/28 Python
全面总结使用CSS实现水平垂直居中效果的方法
2016/03/10 HTML / CSS
详解HTML5 Canvas绘制不规则图形时的非零环绕原则
2016/03/21 HTML / CSS
个人教师自我评价范文
2013/12/02 职场文书
名企HR怎样看待求职信
2014/02/23 职场文书
篮球比赛策划方案
2014/06/05 职场文书
和谐家庭事迹材料
2014/12/20 职场文书
建筑技术负责人岗位职责
2015/04/13 职场文书
单方投资意向书
2015/05/11 职场文书
文明礼貌主题班会
2015/08/14 职场文书
2016年保险公众宣传日活动总结
2016/04/05 职场文书
python实现监听键盘
2021/04/26 Python