Python连载15-高阶函数&map映射
2024-09-24 15:52:58
一、高阶函数
1.定义:把函数作为参数使用的函数叫做高阶函数
(1)变量可以设置为赋值
a=100 b=a
(2)函数名称就是一个变量
def FunA(): print("FunA()") FunA() FunB = FunA FunB()
注意:i.函数名称是变量。ii.FunA和FunB只是名称不一样而已
iii.既然函数名称是变量,则应该可以被当做参数传入另一个函数中去。
2.高阶函数举例
#funA是一个普通函数,返回一个传入数字的100倍数字 def funA(n): return n * 100 #在写一个函数,把传入参数乘以300倍,利用高阶函数 def funB(n ): return funA(n) * 3 print(funB(9))
我们再写一个函数,对比一下谁的调用更好
def funA(n): return n * 100 def funC(n,f): #假定函数是把n扩大三百倍00 retrun f(n) * 3 print(funC(9,funA))
很显然下面的调用是更好的:
(1)减少了函数之间的耦合性,我们利用变量来达到传参的目的
(2)下面的函数扩展性更好,例如:我想要扩大500倍呢,再建立一个函数即可,而不用区修改原有的函数。
3.系统的高阶函数
(1)原意就是映射,即把集合或者列表的元素,每一个元素都按照一定规则实行操作,生成一个新的列表或者集合。
(2)map函数是系统提供的具有映射功能的函数,返回值是一个迭代对象
l1 = [i for i in range(10)] print(l1) l2 = [] for i in l1: l2.append(i*10) print(l2) #利用map来实现 def mulTen(n): return n*10 l3 = map(mulTen,l1) print(type(l3)) print(l3) print(list(l3)) l4 = [i for i in l3] print(l4)
前两行不解释,第三行这个map类,第四行有历史原因:python2是指在列表上操作则返回列表,但python3改了,在列表操作返回不是类,至于是什么意思,我也不清楚。第五行我们列表化打印出来了。第六行,遗留问题为啥是空列表?
二、源码:
d19_2_higher_order_fuction
地址:https://github.com/ruigege66/Python_learning/blob/master/d19_2_higher_order_fuction
2.CSDN:https://blog.csdn.net/weixin_44630050(心悦君兮君不知-睿)
3.博客园:https://www.cnblogs.com/ruigege0000/
4.欢迎关注微信公众号:傅里叶变换,后台回复”礼包“,获取大数据学习资料。
最新文章
- B样条基函数的定义和性质
- php emoji处理微信表情
- POJ 1012 Joseph 推导,暴力,约瑟夫环,打表 难度:2
- 项目管理: Maven 让事情变得简单
- 【转】C# 子窗体如何调用父窗体的方法
- 如何通过Android Studio发布library到jCenter和Maven Central
- UVA 12378 Ball Blasting Game 【Manacher回文串】
- php分页类及其实现原理
- CentOS 6.4下编译安装MySQL 5.6.16
- Oracle的海量存储技术
- ensp实战之防火墙安全转发策略
- Cookie的格式及组成
- JavaScript 哈希表(散列表)应用
- 洛谷P3159 [CQOI2012]交换棋子
- javascript 倒计数功能
- 洛谷P3235 [HNOI2014]江南乐(Multi-SG)
- IDAPython教程(三)
- codeforce 240E 最小树形图+路径记录更新
- 对类的理解(c++)
- remote staging type or host is not specified
热门文章
- make 的参数
- Smarty优缺点
- 王立平--GC
- Win7 64有点找不到MSVCP71.DLL和MSVCR71.dll
- WPF范围选择控件(RangeSelector)
- (记录)mysql分页查询,参数化过程的坑
- UVA10940 - Throwing cards away II(找到规律)
- 1.QT该容器QVector,QList,QSet,QMap,QQueue,QStack,QMultiMap,QSingleList等待
- VS2012发布到XP平台
- 【C#】WindowsAPICodePack-Shell使用教程