一、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. TSynAuthentication SESSION验证

    TSynAuthentication SESSION验证 服务端维护的SESSIONS,实质上是一个array of integer,保存的是客户端的SESSIONID. SESSIONID可以由客户 ...

  2. Android Studio导入第三方库的三种方法

    叨叨在前 今天在项目中使用一个图片选择器的第三方框架——GalleryFinal,想要导入源码,以便于修改,于是上完查找了一下方法,想到之前用到过其他导入第三方库的方法,现在做个小总结,以防忘记. A ...

  3. 《windows内核安全与驱动开发》ctrl2cap中的ObReferenceObjectByName疑问

    国内有关于windows内核驱动这块的书籍实在是甚少,不过好在<windows内核安全与驱动开发>这本书还算不错(内容方面),但是不得不说这本书在许多地方存在着一些细节上的问题.比如我今天 ...

  4. Android内存优化2 了解java内存分配 2

    JVM内存模型 Java虚拟机(Java Virtual Machine=JVM)的内存空间分为五个部分,分别是: 1. 程序计数器 2. Java虚拟机栈 3. 本地方法栈 4. 堆 5. 方法区. ...

  5. win7注册表损坏的修复方法

    win7注册表损坏的修复方法 发布时间:2013-07-19 09:31发布者:系统城-小薇浏览数:3129 注册表是window系统中的一个非常重要的数据库,用于存储电脑系统和应用程序的设置信息,我 ...

  6. mysql备份与还原,增量备份;使用ibd和frm文件恢复数据

    主要用的:binlog.mysqldump.mysqlbinlog 参考: https://www.cnblogs.com/Cherie/p/3309456.html https://blog.csd ...

  7. [转]在Sql Server中将字符串分割成表格数据示例

    本文转自:http://www.lmwlove.com/ac/ID718 比如我们有一个字符串 ) select @appName ='UserID=admin,Account=ABC' 然后我们要以 ...

  8. Jpeglib读取jpg文件 【转】

    http://blog.csdn.net/blues1021/article/details/45424695 整理自 : http://hi.baidu.com/lewutian/item/e8ee ...

  9. Fragment与Activity传递数据

    MainActivity如下: package cc.testsimplefragment0; import android.os.Bundle; import android.app.Activit ...

  10. java 过滤器补充

    多个Filter按照在配置文件中配置的filter顺序执行. 在web.xml文件中配置该Filter,使用init-param元素为该Filter配置参数,init-param可接受如下两个子元素: ...