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 25 Python
Python的GUI框架PySide的安装配置教程
Feb 16 Python
Python中的左斜杠、右斜杠(正斜杠和反斜杠)
Aug 30 Python
python实现外卖信息管理系统
Jan 11 Python
Python闭包之返回函数的函数用法示例
Jan 27 Python
python使用itchat实现手机控制电脑
Feb 22 Python
Python简单定义与使用二叉树示例
May 11 Python
python微信公众号之关键词自动回复
Jun 15 Python
win10 64bit下python NLTK安装教程
Sep 19 Python
详解Python sys.argv使用方法
May 10 Python
Python Subprocess模块原理及实例
Aug 26 Python
Python&Matlab实现灰狼优化算法的示例代码
Mar 21 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创建对象的六种方式实例总结
2019/06/27 PHP
豆瓣网的jquery代码实例
2008/06/15 Javascript
js 时间函数应用加、减、比较、格式转换的示例代码
2013/08/23 Javascript
使用JavaScript+canvas实现图片裁剪
2015/01/30 Javascript
Node.js的Express框架使用上手指南
2016/03/12 Javascript
javaScript数组迭代方法详解
2016/04/14 Javascript
卸载安装Node.js与npm过程详解
2016/08/15 Javascript
JS之获取样式的简单实现方法(推荐)
2016/09/13 Javascript
JS动态的把左边列表添加到右边的实现代码(可上下移动)
2016/11/17 Javascript
vue实现ToDoList简单实例
2017/02/07 Javascript
Vue实现双向数据绑定
2017/05/03 Javascript
js时间戳与日期格式之间相互转换
2017/12/11 Javascript
vue中使用echarts制作圆环图的实例代码
2018/07/27 Javascript
微信小程序自定义头部导航栏(组件化)
2019/11/15 Javascript
JS实现轮播图效果
2020/01/11 Javascript
OpenLayers3加载常用控件使用方法详解
2020/09/25 Javascript
解决Vue watch里调用方法的坑
2020/11/07 Javascript
利用python编写一个图片主色转换的脚本
2017/12/07 Python
Python面向对象程序设计中类的定义、实例化、封装及私有变量/方法详解
2019/02/28 Python
Python嵌套式数据结构实例浅析
2019/03/05 Python
Python 中PyQt5 点击主窗口弹出另一个窗口的实现方法
2019/07/04 Python
Python使用selenium + headless chrome获取网页内容的方法示例
2019/10/16 Python
Python实现链表反转的方法分析【迭代法与递归法】
2020/02/22 Python
解决pyqt5异常退出无提示信息的问题
2020/04/08 Python
解决python中import文件夹下面py文件报错问题
2020/06/01 Python
CSS3的first-child选择器实战攻略
2016/04/28 HTML / CSS
澳大利亚儿童精品仓库:Goo & Co.
2019/06/20 全球购物
酒店个人培训自我鉴定
2013/12/11 职场文书
工会主席岗位责任制
2014/02/11 职场文书
探亲假请假条
2014/04/11 职场文书
平安建设工作方案
2014/06/02 职场文书
装饰公司活动策划方案
2014/08/23 职场文书
骨干教师个人总结
2015/02/11 职场文书
2015年行政工作总结范文
2015/04/09 职场文书
2019消防宣传标语!
2019/07/10 职场文书
为什么MySQL选择Repeatable Read作为默认隔离级别
2021/07/26 MySQL