Python学习笔记7:函数对象及函数对象作參数
一、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:函数对象及函数对象作參数的更多相关文章
- springmvc学习笔记(13)-springmvc注解开发之集合类型參数绑定
springmvc学习笔记(13)-springmvc注解开发之集合类型參数绑定 标签: springmvc springmvc学习笔记13-springmvc注解开发之集合类型參数绑定 数组绑定 需 ...
- springmvc学习笔记(12)-springmvc注解开发之包装类型參数绑定
springmvc学习笔记(12)-springmvc注解开发之包装类型參数绑定 标签: springmvc springmvc学习笔记12-springmvc注解开发之包装类型參数绑定 需求 实现方 ...
- Python学习笔记一:变量、函数
变量.函数是Python语言的最基本单元,下面是我作为初学者的当前理解,随着学习的深入今后会做刷新. 变量:表示操作对象是谁. 变量的方法:表示能做什么事情. 如何设计变量:先分析需要解决的问题,基于 ...
- python学习笔记:第10天 函数进阶和作用域
目录 1. 函数进阶 2. 命名空间 3. 关键字global和nonlocal 1. 函数进阶 动态接收位置参数 之前写的函数都是固定参数的,假设有个函数需要的参数由几十个,一个个写在形参的位置会非 ...
- python学习笔记:第9天 函数初步
1. 函数的定义及调用 函数:所谓的函数可以看作是对一段代码的封装,也是对一个功能模块的封装,这样方便在下次想用这个功能的时候直接调用这个功能模块,而不用重新去写. 函数的定义:我们使用def关键字来 ...
- python学习笔记(24)-类与对象
#类与对象 #python类的语法 关键字 class #class 类名 类名的规范是:数字字母下划线组成,不能以数字开头 首字母大写 驼峰命名 #类属性 放在类里面的变量值 #类方法 放在类里面的 ...
- python学习笔记(十一)之函数
牛刀小试: 定义一个无参函数 >>> def myFirstFunc(): ... print("Hello python") ... print("h ...
- Python学习笔记——常用的内置函数
一.yield def EricReadlines(): seek = 0 while True: with open('D:/temp.txt','r') as f: f.seek(seek) da ...
- Python学习笔记(十)匿名函数
摘抄自:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431843456 ...
- Python学习笔记(九)返回函数
摘抄:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014318352367 ...
随机推荐
- 基于tiny4412的Linux内核移植 -- MMA7660驱动移植(九)
作者信息 作者: 彭东林 邮箱:pengdonglin137@163.com QQ:405728433 平台简介 开发板:tiny4412ADK + S700 + 4GB Flash 要移植的内核版本 ...
- AppCan入门教程
主干 主干可以认为是整个页面的整体框架布局 上图是截取与ZAKER(原生开发).正益无线(HTML5开发).ZAKER微博界面(原生开发)和HTML5中国(HTML5开发).参考上述界面我们看到大部分 ...
- 【java】【多线程】等待开启的多个线程都执行完成,再做事情,怎么实现
今天在controller中写一个接口用来测试模拟多个请求同时到达 下订单的情况, 怎么能有效保证高并发下的库存和销量的一致性呢?[具体实现方法:https://www.cnblogs.com/sxd ...
- 通过命名管道协议方式访问群集SQL的一个小问题
原来的单机实例SQL如果开放命名管道协议访问可以在.Net程序的连接字符串中增加“;Net=dbnmpntw"以通过命名管道协议方式访问,但是当迁移到群集SQL后,.net通过它可能无法正常 ...
- NGUI自适应屏幕分辨率
unity官方承诺的新ui系统一直没有推出来,我们的UI使用的是原生的OnGUI系统,刚好UI需要改版,索性就想迁到NGUI上面来,于是看了一下NGUI源码,发现NGUI可以大大的降低DrawCall ...
- [转]自用类库整理之SqlHelper和MySqlHelper
本文转自:http://www.cnblogs.com/lzrabbit/p/3287155.html 自用的SQLHelper和MySqlHelper,除一些通用方法外,封装了一些很实用的批量操作方 ...
- [转]SQLSERVER存储过程调用不同数据库的数据_存储过程中通过链接服务器访问远程服务器
本文转自:http://blog.csdn.net/nnaabbcc/article/details/7967761 存储过程调用不同数据库的数据 在存储过程调用不同数据库的数据该如何做,比如在存储过 ...
- unity reflection probe --- forward deferred transparent opaque
deferred 和forward reflection probe 的差别 deferred ref是逐像素的 forward是逐 obj 但我还遇到一个问题就是box projection ref ...
- ElementUI使用问题记录:设置路由+iconfont图标+自定义表单验证
一.关于导航怎么设置路由 1.在el-menu这个标签的属性中添加 router ,官方文档的解释是:启用vue-router 这种模式 2.在el-menu-item标签中的index属性直接书写路 ...
- 编译安装mysql-5.6.40
编译安装mysql-5.6.40 环境说明 系统版本 CentOS 7.2 x86_64 软件版本 mysql-5.6.40 [root@db01 ~]# mkdir -p /serv ...