
Python:高阶函数,柯里化Currying
举例
发布日期:2021-05-07 14:08:00
浏览次数:12
分类:原创文章
本文共 856 字,大约阅读时间需要 2 分钟。
高阶函数
First Class Object
- 函数在Python中是一等公民
- 函数也是对象,可调用的对象
- 函数也是对象,可调用的对象
高阶函数
- 数学概念 y=g(f(x))
- 在数学和计算机学科中,高阶函数应当是至少满足下面一个条件的函数
- 接受一个或多个函数作为参数
- 输出一个函数
栈里面存放的是,函数的变量,压栈过程是有序的,堆里面存放的是调用函数的对象的变量,是无序的
内键高阶函数【常用的】
排序:sorted(iterable[, key][, reverse])
- 返回一个新的列表,对一个可迭代对象的所有元素排序,排序规则为key定义的函数,reverse表示是 否排序翻转
过滤:filter(function, iterable) --> filter object
- 过滤可迭代对象的元素,返回一个迭代器
- function一个具有一个参数的函数,返回bool
- 例如,过滤出数列中能被3整除的数字
- list(filter(lambda x: x%3==0, [1,9,55,150,-3,78,28,123]))
映射:map(func, *iterables) --> map object
- 对多个可迭代对象的元素按照指定的函数进行映射,返回一个迭代器
- list(map(lambda x:2*x+1, range(5)))
- dict(map(lambda x: (x%5,x) , range(500))
柯里化
-
指的是将原来接受两个参数的函数变成新的接受一个参数的函数的过程。新的函数返回一个以原有第 二个参数为参数的函数
-
z = f(x, y) 转换成 z = f(x)(y)的形式
举例
将加法函数柯里化
def add(x, y): return x + y
柯里化后
def add(x): def _add(y): return x + y return _addprint(add(5)(7)) #12
通过嵌套函数就可以把函数转换成柯里化函数
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2025年03月30日 01时17分49秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
微信小程序生命周期 / 页面的生命周期 / 页面的用户行为
2019-03-04
用C语言散列表实现电话薄
2019-03-04
微信小程序云开发手机商城项目源码+数据库+云后台+部署 (毕业生福利!)
2019-03-04
Maven的配置
2019-03-04
如何在bilibili上下载学习视频?
2019-03-04
Python爬虫利器之Beautiful Soup的全世界最强用法 五百行文章!
2019-03-04
09-Vue之本地应用v-for指令
2019-03-04
03-selenium元素定位
2019-03-04
19-selenium操作已启动的浏览器
2019-03-04
2020.2.13普及C组 罗密欧与朱丽叶的约会【纪中】【前缀和】
2019-03-04
纪中2020.3.18普及C组模拟赛总结
2019-03-04
YbtOJ 递推算法课堂过关 例5 平铺方案【递推(简单DP)】
2019-03-04
YbtOJ hash和hash表课堂过关 例1 字符串哈希【hash】
2019-03-04
CSUST 2021 周赛 2 题解
2019-03-04
前后端数据交互之表单
2019-03-04
剑指offer JZ15 反转链表
2019-03-04
剑指offer JZ21 栈的压入弹出序列
2019-03-04
剑指offer JZ31 整数中1出现的次数
2019-03-04
实现基于scrapy框架的天气预报爬虫hengYangSpaider @572311文
2019-03-04
maven打包指定名称并去除jar-with-dependencies后缀
2019-03-04