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中用pycurl监控http响应时间脚本分享
Feb 02 Python
Python编程中运用闭包时所需要注意的一些地方
May 02 Python
Python使用dis模块把Python反编译为字节码的用法详解
Jun 14 Python
python 安装virtualenv和virtualenvwrapper的方法
Jan 13 Python
浅谈Python脚本开头及导包注释自动添加方法
Oct 27 Python
python django下载大的csv文件实现方法分析
Jul 19 Python
Python3将ipa包中的文件按大小排序
Apr 17 Python
可视化pytorch 模型中不同BN层的running mean曲线实例
Jun 24 Python
python接口自动化之ConfigParser配置文件的使用详解
Aug 03 Python
Pycharm配置autopep8实现流程解析
Nov 28 Python
超级详细实用的pycharm常用快捷键
May 12 Python
python中 Flask Web 表单的使用方法
May 20 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
phpMyadmin 用户权限中英对照
2010/04/02 PHP
PHP 处理TXT文件(打开/关闭/检查/读取)
2013/05/13 PHP
解析thinkphp基本配置 convention.php
2013/06/18 PHP
PHP Session 变量的使用方法详解与实例代码
2013/09/11 PHP
PHP多文件上传实例
2015/07/09 PHP
PHP使用mysqli操作MySQL数据库的简单方法
2017/02/04 PHP
javascript GUID生成器实现代码
2009/10/31 Javascript
jQuery瀑布流插件Wookmark使用实例
2014/04/02 Javascript
jQuery 处理页面的事件详解
2015/01/20 Javascript
JS组件Bootstrap Table表格行拖拽效果实现代码
2020/08/27 Javascript
用jQuery获取table中行id和td值的实现代码
2016/05/19 Javascript
JS导出PDF插件的方法(支持中文、图片使用路径)
2016/07/12 Javascript
JavaScript实现图像模糊化的方法实例
2017/01/15 Javascript
javascript实现滑动解锁功能
2017/03/22 Javascript
easyui关于validatebox实现多重规则验证的方法(必看)
2017/04/12 Javascript
详解windows下vue-cli及webpack 构建网站(三)使用组件
2017/06/17 Javascript
JavaScript创建防篡改对象的方法分析
2018/12/30 Javascript
[35:44]2014 DOTA2华西杯精英邀请赛 5 24 iG VS VG
2014/05/26 DOTA
用PyQt进行Python图形界面的程序的开发的入门指引
2015/04/14 Python
python append、extend与insert的区别
2016/10/13 Python
解决Python requests 报错方法集锦
2017/03/19 Python
pycharm 在windows上编辑代码用linux执行配置的方法
2018/10/27 Python
简单的Python调度器Schedule详解
2019/08/30 Python
python使用正则表达式(Regular Expression)方法超详细
2019/12/30 Python
python实现简单学生信息管理系统
2020/04/09 Python
tensorflow模型的save与restore,及checkpoint中读取变量方式
2020/05/26 Python
简单聊聊H5的pushState与replaceState的用法
2018/04/03 HTML / CSS
标签和贴纸印刷:Lightning Labels
2018/03/22 全球购物
生物制药专业自我鉴定
2014/02/19 职场文书
趣味运动会开幕词
2015/01/28 职场文书
北京英语导游词
2015/02/12 职场文书
班级管理经验交流材料
2015/11/02 职场文书
再见,2019我们不负使命;你好,2020我们砥砺前行
2020/01/03 职场文书
详解JS WebSocket断开原因和心跳机制
2021/05/07 Javascript
oracle索引总结
2021/09/25 Oracle
能用CSS实现的就不要麻烦JavaScript了
2021/10/05 HTML / CSS