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模块学习 filecmp 文件比较
Aug 27 Python
python入门之语句(if语句、while语句、for语句)
Jan 19 Python
Python中用于转换字母为小写的lower()方法使用简介
May 19 Python
Python入门_浅谈数据结构的4种基本类型
May 16 Python
Python读csv文件去掉一列后再写入新的文件实例
Dec 28 Python
Python 12306抢火车票脚本 Python京东抢手机脚本
Feb 06 Python
使用Python监控文件内容变化代码实例
Jun 04 Python
Django保护敏感信息的方法示例
May 09 Python
PyQt5+Caffe+Opencv搭建人脸识别登录界面
Aug 28 Python
python如何将两张图片生成为全景图片
Mar 05 Python
Pandas的Apply函数具体使用
Jul 21 Python
python blinker 信号库
May 04 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的header和asp中的redirect比较
2006/10/09 PHP
php addslashes和mysql_real_escape_string
2010/01/24 PHP
php源码加密 仿微盾PHP加密专家(PHPCodeLock)
2010/05/06 PHP
php下保存远程图片到本地的办法
2010/08/08 PHP
PHP脚本监控Nginx 502错误并自动重启php-fpm
2015/05/13 PHP
使用Thinkphp框架开发移动端接口
2015/08/05 PHP
PHP递归删除多维数组中的某个值
2017/04/17 PHP
js arguments.callee的应用代码
2009/05/07 Javascript
根据对象的某一属性进行排序的js代码(如:name,age)
2010/08/10 Javascript
一个用jquery写的判断div滚动条到底部的方法【推荐】
2016/04/29 Javascript
jQuery Easyui DataGrid点击某个单元格即进入编辑状态焦点移开后保存数据
2016/08/15 Javascript
AngularJS实现在ng-Options加上index的解决方法
2016/11/03 Javascript
AngularJS封装指令方法详解
2016/12/12 Javascript
ECMAScript6变量的解构赋值实例详解
2017/09/19 Javascript
vue中本地静态图片路径写法
2018/03/06 Javascript
javascript实现简单页面倒计时
2021/03/02 Javascript
[00:10]DOTA2全国高校联赛 以DOTA2会友
2018/05/30 DOTA
[51:27]LGD vs Liquid 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
Python中用于转换字母为小写的lower()方法使用简介
2015/05/19 Python
在Python的Django框架中创建语言文件
2015/07/27 Python
Python使用logging模块实现打印log到指定文件的方法
2018/09/05 Python
Windows 64位下python3安装nltk模块
2018/09/19 Python
Python File(文件) 方法整理
2019/02/18 Python
使用PYTHON解析Wireshark的PCAP文件方法
2019/07/23 Python
django admin后管定制-显示字段的实例
2020/03/11 Python
Python restful框架接口开发实现
2020/04/13 Python
keras实现图像预处理并生成一个generator的案例
2020/06/17 Python
浅谈CSS3中的变形功能-transform功能
2017/12/27 HTML / CSS
DAWGS鞋官方网站:鞋,凉鞋,靴子
2016/10/04 全球购物
Microsoft新加坡官方网站:购买微软最新软件和技术产品
2016/10/28 全球购物
医药专业应届毕业生求职信范文
2014/01/01 职场文书
促销活动策划方案
2014/01/12 职场文书
工作交流会欢迎词
2014/01/12 职场文书
营销总经理岗位职责
2014/02/02 职场文书
企业计划生育责任书
2015/05/09 职场文书
高中班主任心得体会
2016/01/07 职场文书