一、lambda函数

比如:

fun1 = lambda x,y: x + y
print fun1(3,4)

输出:7



lambda生成一个函数对象。该函数參数为x,y,返回值为x+y。函数对象赋给func。

func的调用与正常函数无异。



上面的代码等价于:

def fun2(x, y):
return x + y

二、函数作为參数

函数能够作为一个对象。进行參数传递。

比如:

fun = lambda x ,y : x+y
def runFun(fun, a, b):
print fun(a,b)
runFun(fun, 3, 5)

输出:8



又如:

runFun((lambda x,y: x**2 + y), 6, 9)

三、map()函数

map()是Python的内置函数。它的第一个參数是一个函数对象。

map()的功能是将函数对象依次作用于表的每个元素。并将结果返回。

如:

ret1 = map((lambda x:x+1),[1,2,3])
print ret1 ret2 = map((lambda x,y:x+y),[1,2,3],[10,100,1000])
print ret2

输出:

[2, 3, 4]
[11, 102, 1003]

三、filter()函数

filter函数的第一个參数也是一个函数对象。它也是将作为參数的函数对象作用于多个元素。

假设函数对象返回的是True,则该次的元素被储存于返回的表中。filter通过读入的函数来筛选数据。

如:

def fun3(a):
if a > 100:
return True
else:
return False print filter(fun3, [10,20,100,110])

输出:[110]





四、reduce()函数

reduce函数的第一个參数也是函数,但有一个要求,就是这个函数自身能接收两个參数。

比如:

print reduce((lambda x,y:x+y),[1,2,3,4,5])

输出:15



reduce将表中的前两个元素(1和2)传递给lambda函数,得到3。

该返回值(3)将作为lambda函数的第一个參数,而表中的下一个元素(3)作为lambda函数的第二个參数,进行下一次的对lambda函数的调用,得到6。

依次调用lambda函数。每次lambda函数的第一个參数是上一次运算结果,而第二个參数为表中的下一个元素,直到表中没有剩余元素。

上面样例。相当于(((1+2)+3)+4)+5





注意:在3.x版本号中map,filter,reduce这三个函数都稍有不同

Python学习笔记7:函数对象及函数对象作參数的更多相关文章

  1. springmvc学习笔记(13)-springmvc注解开发之集合类型參数绑定

    springmvc学习笔记(13)-springmvc注解开发之集合类型參数绑定 标签: springmvc springmvc学习笔记13-springmvc注解开发之集合类型參数绑定 数组绑定 需 ...

  2. springmvc学习笔记(12)-springmvc注解开发之包装类型參数绑定

    springmvc学习笔记(12)-springmvc注解开发之包装类型參数绑定 标签: springmvc springmvc学习笔记12-springmvc注解开发之包装类型參数绑定 需求 实现方 ...

  3. Python学习笔记一:变量、函数

    变量.函数是Python语言的最基本单元,下面是我作为初学者的当前理解,随着学习的深入今后会做刷新. 变量:表示操作对象是谁. 变量的方法:表示能做什么事情. 如何设计变量:先分析需要解决的问题,基于 ...

  4. python学习笔记:第10天 函数进阶和作用域

    目录 1. 函数进阶 2. 命名空间 3. 关键字global和nonlocal 1. 函数进阶 动态接收位置参数 之前写的函数都是固定参数的,假设有个函数需要的参数由几十个,一个个写在形参的位置会非 ...

  5. python学习笔记:第9天 函数初步

    1. 函数的定义及调用 函数:所谓的函数可以看作是对一段代码的封装,也是对一个功能模块的封装,这样方便在下次想用这个功能的时候直接调用这个功能模块,而不用重新去写. 函数的定义:我们使用def关键字来 ...

  6. python学习笔记(24)-类与对象

    #类与对象 #python类的语法 关键字 class #class 类名 类名的规范是:数字字母下划线组成,不能以数字开头 首字母大写 驼峰命名 #类属性 放在类里面的变量值 #类方法 放在类里面的 ...

  7. python学习笔记(十一)之函数

    牛刀小试: 定义一个无参函数 >>> def myFirstFunc(): ... print("Hello python") ... print("h ...

  8. Python学习笔记——常用的内置函数

    一.yield def EricReadlines(): seek = 0 while True: with open('D:/temp.txt','r') as f: f.seek(seek) da ...

  9. Python学习笔记(十)匿名函数

    摘抄自:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431843456 ...

  10. Python学习笔记(九)返回函数

    摘抄:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014318352367 ...

随机推荐

  1. 【Tomcat MyEcplise】MyEcplise添加一个新的Server,Tomcat8.5报错

    添加新的Tomcat添加不进去,报错: The Apache Tomcat installation at this directory is version 8.5.11.  A Tomcat 8. ...

  2. 【POI】解析xls报错:java.util.zip.ZipException: error in opening zip file

    今天使用POI解析XLS,报错如下: Servlet.service() for servlet [rest] in context with path [/cetBrand] threw excep ...

  3. 查看iOS Crash logs

    当应用在设备中运行发生崩溃,iOS将记录这些错误日志并且创建了崩溃报告(Crash Report).崩溃报告中包含了iOS的版本.日期.异常类型.堆栈跟踪以及其他信息. ① 在Xcode中查看崩溃报告 ...

  4. python中出现 “'gbk' codec can't decode byte 0xf3 in position 20: illegal multibyte sequence”问题

    其实是打开文件方法open()中的模式有r,w,a等. 请看: r 以只读方式打开文件.文件的指针将会放在文件的开头.这是默认模式. rb 以二进制格式打开一个文件用于只读.文件指针将会放在文件的开头 ...

  5. ylbtech-LanguageSamples-OfficeSample(COM 互操作)

    ylbtech-Microsoft-CSharpSamples:ylbtech-LanguageSamples-OfficeSample(COM 互操作) 1.A,示例(Sample) 返回顶部 本示 ...

  6. Hibernate异常:Unable to locate appropriate constructor on class

    异常信息:org.hibernate.hql.ast.QuerySyntaxException: Unable to locate appropriate constructor on class o ...

  7. Mac 快捷键整理(不定期更新)

    刚用Mac, 感到有点困难,记录几个快捷键: 1) 在全屏间切换: ctrl + command + F 2)向后删: Fn + delete

  8. sudo 添加

    sudo 添加 /etc/sudoers 找到root  ALL=(ALL)  ALL那一行, 复制之后,修改用户名:

  9. Centos 7 通过yum的方式安装配置Artifactory 5.10

    制品仓库系统有很多,例如:Artifactory,Nexus,Archiva, 其中Artifactory拥有很多强大的企业级特性和人性化的用户接口,很多大型的公司都在使用它. 背景:因客户需求,需要 ...

  10. SQL Server 2008 R2 清空数据库中ldf日志文件

    /************************************************************ * Sql Server 2008 R2 清空数据库中ldf日志文件 * 将 ...