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 相关文章推荐
Flask SQLAlchemy一对一,一对多的使用方法实践
Feb 10 Python
python爬虫 正则表达式使用技巧及爬取个人博客的实例讲解
Oct 20 Python
Python使用装饰器模拟用户登陆验证功能示例
Aug 24 Python
tensorflow使用神经网络实现mnist分类
Sep 08 Python
python requests.post带head和body的实例
Jan 02 Python
python代码 FTP备份交换机配置脚本实例解析
Aug 01 Python
使用Python实现正态分布、正态分布采样
Nov 20 Python
基于numpy中的expand_dims函数用法
Dec 18 Python
对python中 math模块下 atan 和 atan2的区别详解
Jan 17 Python
Numpy中ndim、shape、dtype、astype的用法详解
Jun 14 Python
keras使用Sequence类调用大规模数据集进行训练的实现
Jun 22 Python
python通配符之glob模块的使用详解
Apr 24 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
js下函数般调用正则的方法附代码
2008/06/22 PHP
PHP中使用localhost连接Mysql不成功的解决方法
2014/08/20 PHP
PHP实现本地图片转base64格式并上传
2020/05/29 PHP
让回调函数 showResponse 也带上参数的代码
2007/08/13 Javascript
JS常见问题整理(持续更新)
2013/08/06 Javascript
jQuery实现字符串按指定长度加入特定内容的方法
2015/03/11 Javascript
jQuery仿天猫实现超炫的加入购物车
2015/05/04 Javascript
分享JavaScript与Java中MD5使用两个例子
2015/12/23 Javascript
探讨JavaScript语句的执行过程
2016/01/28 Javascript
JS实现Select的option上下移动的方法
2016/03/01 Javascript
基于Bootstrap使用jQuery实现简单可编辑表格
2016/05/04 Javascript
Javascript iframe交互并兼容各种浏览器的解决方法
2016/07/12 Javascript
JS控件bootstrap datepicker使用方法详解
2017/03/25 Javascript
Webstorm2016使用技巧(SVN插件使用)
2018/10/29 Javascript
jQuery事件多次绑定与解绑问题实例分析
2019/02/19 jQuery
vue中使用element ui的弹窗与echarts之间的问题详解
2019/10/25 Javascript
Element Alert警告的具体使用方法
2020/07/27 Javascript
浅谈vue websocket nodeJS 进行实时通信踩到的坑
2020/09/22 NodeJs
[07:47]DOTA2国际邀请赛采访专栏:探访Valve总部
2013/08/08 DOTA
python获取图片颜色信息的方法
2015/03/18 Python
Windows系统下使用flup搭建Nginx和Python环境的方法
2015/12/25 Python
Python实现网站注册验证码生成类
2017/06/08 Python
python3之模块psutil系统性能信息使用
2018/05/30 Python
如何在python中执行另一个py文件
2020/04/30 Python
Keras搭建自编码器操作
2020/07/03 Python
解决导入django_filters不成功问题No module named 'django_filter'
2020/07/15 Python
celery在python爬虫中定时操作实例讲解
2020/11/27 Python
巴西最大的家电和百货零售商:Casas Bahia
2016/11/22 全球购物
美国真皮手袋品牌:GiGi New York
2017/03/10 全球购物
ZWILLING双立人英国网上商店:德国刀具锅具厨具品牌
2018/05/15 全球购物
安全事故检讨书
2014/01/18 职场文书
《称象》教学反思
2014/04/25 职场文书
报考公务员诚信承诺书
2014/08/29 职场文书
检讨书1000字
2014/10/11 职场文书
python tkinter实现定时关机
2021/04/21 Python
浅谈python数据类型及其操作
2021/05/25 Python