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 简易计算器程序,代码就几行
Aug 29 Python
python实现删除文件与目录的方法
Nov 10 Python
Python中django学习心得
Dec 06 Python
python实现微信远程控制电脑
Feb 22 Python
基于Django URL传参 FORM表单传数据 get post的用法实例
May 28 Python
python 从csv读数据到mysql的实例
Jun 21 Python
解决python3读取Python2存储的pickle文件问题
Oct 25 Python
基于python3抓取pinpoint应用信息入库
Jan 08 Python
Pytorch释放显存占用方式
Jan 13 Python
python实现FTP文件传输的方法(服务器端和客户端)
Mar 20 Python
python输出国际象棋棋盘的实例分享
Nov 26 Python
pycharm 如何取消连按两下shift出现的全局搜索
Jan 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获取网卡地址的代码
2008/04/09 PHP
PHP IPV6正则表达式验证代码
2010/02/16 PHP
php 求质素(素数) 的实现代码
2011/04/12 PHP
工厂模式在Zend Framework中应用介绍
2012/07/10 PHP
php获取操作系统语言代码
2013/11/04 PHP
php检测useragent版本示例
2014/03/24 PHP
Codeigniter控制器controller继承问题实例分析
2016/01/19 PHP
PHP长连接实现与使用方法详解
2018/02/11 PHP
PHP检查端口是否可以被绑定的方法示例
2018/08/09 PHP
Jquery实现select multiple左右添加和删除功能的简单实例
2016/05/26 Javascript
js前端实现多图图片上传预览的两个方法(推荐)
2016/11/18 Javascript
jquery PrintArea 实现票据的套打功能(代码)
2017/03/17 Javascript
AngularJS 将再发布一个重要版本 然后进入长期支持阶段
2018/01/31 Javascript
小程序如何自主实现拦截器的示例代码
2019/11/04 Javascript
微信小程序缓存支持二次开发封装实现解析
2019/12/16 Javascript
[04:05]TI9战队采访 - Natus Vincere
2019/08/22 DOTA
python实现决策树分类算法
2017/12/21 Python
Python内置函数reversed()用法分析
2018/03/20 Python
python实现两个文件合并功能
2018/04/01 Python
解决python中使用plot画图,图不显示的问题
2018/07/04 Python
python修改字典键(key)的方法
2019/08/05 Python
Python facenet进行人脸识别测试过程解析
2019/08/16 Python
python FTP批量下载/删除/上传实例
2019/12/22 Python
Python 窗体(tkinter)下拉列表框(Combobox)实例
2020/03/04 Python
如何通过Python实现RabbitMQ延迟队列
2020/11/28 Python
日本最大的药妆连锁店:Matsukiyo松本清药妆店
2017/11/23 全球购物
英国地毯卖家:The Rug Seller
2019/07/18 全球购物
YSL圣罗兰美妆俄罗斯官网:Yves Saint Lauret RU
2020/09/23 全球购物
Groupon西班牙官方网站:在线优惠券和交易,节省高达70%
2021/03/13 全球购物
求网格中的黑点分布
2013/11/06 面试题
亲子阅读的活动方案
2014/08/15 职场文书
好人好事演讲稿
2014/09/01 职场文书
小学二年级班主任工作经验交流材料
2015/11/02 职场文书
企业管理制度设计时要注意的几种“常见病”!
2019/04/19 职场文书
pandas:get_dummies()与pd.factorize()的用法及区别说明
2021/05/21 Python
Django框架模板用法详解
2022/06/10 Python