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绘制人人网好友关系图示例
Apr 01 Python
Python编程入门之Hello World的三种实现方式
Nov 13 Python
Python使用multiprocessing实现一个最简单的分布式作业调度系统
Mar 14 Python
Python作用域用法实例详解
Mar 15 Python
Python3 获取一大段文本之间两个关键字之间的内容方法
Oct 11 Python
python numpy实现文件存取的示例代码
May 26 Python
Django集成搜索引擎Elasticserach的方法示例
Jun 04 Python
Python Django 命名空间模式的实现
Aug 09 Python
Python基于yield遍历多个可迭代对象
Mar 12 Python
python matplotlib.pyplot.plot()参数用法
Apr 14 Python
python如何用matplotlib创建三维图表
Jan 26 Python
python实现会员信息管理系统(List)
Mar 18 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原理之错误抑制与内嵌HTML分析
2011/05/02 PHP
phpmyadmin安装时提示:Warning: require_once(./libraries/common.inc.php)错误解决办法
2011/08/18 PHP
thinkphp验证码显示不出来的解决方法
2014/03/29 PHP
PHP XML和数组互相转换详解
2016/10/26 PHP
PHP+Mysql+Ajax实现淘宝客服或阿里旺旺聊天功能(前台页面)
2017/06/16 PHP
ThinkPHP5.0框架验证码功能实现方法【基于第三方扩展包】
2019/03/11 PHP
jquery 学习笔记 传智博客佟老师附详细注释
2020/09/12 Javascript
基于jquery的网页SELECT下拉框美化代码
2010/10/28 Javascript
js String对象中常用方法小结(字符串操作)
2012/01/27 Javascript
基于jquery的bankInput银行卡账号格式化
2012/08/22 Javascript
jQuery父级以及同级元素查找介绍
2013/09/04 Javascript
js代码实现点击按钮出现60秒倒计时
2021/01/28 Javascript
浅析jquery unbind()方法移除元素绑定的事件
2016/05/24 Javascript
confirm确认对话框的实现方法总结
2016/06/17 Javascript
详解webpack和webpack-simple中如何引入css文件
2017/06/28 Javascript
VUE-Table上绑定Input通过render实现双向绑定数据的示例
2018/08/27 Javascript
node.js 基于cheerio的爬虫工具的实现(需要登录权限的爬虫工具)
2019/04/10 Javascript
微信小程序实现简单文字跑马灯
2020/05/26 Javascript
vue实现前端列表多条件筛选
2020/10/26 Javascript
解决vue下载后台传过来的乱码流的问题
2020/12/05 Vue.js
python并发2之使用asyncio处理并发
2017/12/21 Python
Python中property属性实例解析
2018/02/10 Python
Linux下Python安装完成后使用pip命令的详细教程
2018/11/22 Python
python绘制评估优化算法性能的测试函数
2019/06/25 Python
Python tcp传输代码实例解析
2020/03/18 Python
python如何遍历指定路径下所有文件(按按照时间区间检索)
2020/09/14 Python
css3 中实现炫酷的loading效果
2019/04/26 HTML / CSS
美国存储和组织商店:The Container Store
2017/08/16 全球购物
美国糖果店:Sugarfina
2019/02/21 全球购物
清华大学自主招生自荐信
2014/01/29 职场文书
投标承诺书范本
2014/03/27 职场文书
奥运会口号
2014/06/13 职场文书
英语教师求职信
2014/06/16 职场文书
党校毕业心得体会
2014/09/13 职场文书
tensorflow中的数据类型dtype用法说明
2021/05/26 Python
使用@Value值注入及配置文件组件扫描
2021/07/09 Java/Android