Python中lambda的用法及其与def的区别解析


Posted in Python onJuly 28, 2014

python中的lambda通常是用来在python中创建匿名函数的,而用def创建的方法是有名称的,除了从表面上的方法名不一样外,python中的lambda还有如下几点和def不一样:

1. python lambda会创建一个函数对象,但不会把这个函数对象赋给一个标识符,而def则会把函数对象赋值给一个变量。

2. python lambda它只是一个表达式,而def则是一个语句。

下面是python lambda的格式,看起来非常精简。

lambda x: print x

如果你在python 列表解析里用到python lambda,感觉意义并不是很大,因为python lambda它会创建一个函数对象,但马上又给丢弃了,因为你没有使用它的返回值,即那个函数对象。也正是由于lambda只是一个表达式,它可以直接作为python 列表或python 字典的成员,比如:

info = [lamba a: a**3, lambda b: b**3]

在这个地方没有办法用def语句直接代替。因为def是语句,不是表达式不能嵌套在里面,lambda表达式在“:”后只能有一个表达式。也就是说,在def中,用return可以返回的也可以放在lambda后面,不能用return返回的也不能定义在python lambda后面。因此,像if或for或print这种语句就不能用于lambda中,lambda一般只用来定义简单的函数。

下面举几个python lambda的例子:

1.单个参数的情况:

g = lambda x*2
print g(3)

运行结果是6

2.多个参数的情况:

m = lambda x,y,z: (x-y)*z
print m(3,1,2)

运行结果是4

Python 相关文章推荐
Python的Tornado框架的异步任务与AsyncHTTPClient
Jun 27 Python
Python中的FTP通信模块ftplib的用法整理
Jul 08 Python
python Opencv将图片转为字符画
Feb 19 Python
Python中的 enum 模块源码详析
Jan 09 Python
python如何保证输入键入数字的方法
Aug 23 Python
Python 求数组局部最大值的实例
Nov 26 Python
Python编程快速上手——Excel到CSV的转换程序案例分析
Feb 28 Python
浅谈Python中的继承
Jun 19 Python
python如何实现图片压缩
Sep 11 Python
Python实现壁纸下载与轮换
Oct 19 Python
Python通过m3u8文件下载合并ts视频的操作
Apr 16 Python
Python数组变形的几种实现方法
May 30 Python
python代码制作configure文件示例
Jul 28 #Python
python编写网页爬虫脚本并实现APScheduler调度
Jul 28 #Python
python调用新浪微博API项目实践
Jul 28 #Python
python中的sort方法使用详解
Jul 25 #Python
python实现监控linux性能及进程消耗性能的方法
Jul 25 #Python
python的dict,set,list,tuple应用详解
Jul 24 #Python
Python常见数据结构详解
Jul 24 #Python
You might like
PHP中去掉字符串首尾空格的方法
2012/05/19 PHP
php视频拍照上传头像功能实现代码分享
2015/10/08 PHP
Laravel框架模板继承操作示例
2018/06/11 PHP
JQuery Ajax通过Handler访问外部XML数据的代码
2010/06/01 Javascript
JavaScript学习历程和心得小结
2010/08/16 Javascript
js当一个变量为函数时 应该注意的一点细节小结
2011/12/29 Javascript
裁剪字符串trim()自定义改进版
2013/04/10 Javascript
浅谈javascript中call()、apply()、bind()的用法
2015/04/20 Javascript
javascript实现继承的简单实例
2015/07/26 Javascript
学习javascript面向对象 javascript实现继承的方式
2016/01/04 Javascript
jQuery实现鼠标选文字发新浪微博的方法
2016/04/02 Javascript
Bootstrap Paginator分页插件使用方法详解
2016/05/30 Javascript
jQuery插件cxSelect多级联动下拉菜单实例解析
2016/06/24 Javascript
jQuery插件dataTables添加序号列的方法
2016/07/06 Javascript
js 上传文件预览的简单实例
2016/08/16 Javascript
JavaScript注入漏洞的原理及防范(详解)
2016/12/04 Javascript
浅谈React Native Flexbox布局(小结)
2018/01/08 Javascript
微信小程序icon组件使用详解
2018/01/31 Javascript
layDate插件设置开始和结束时间
2018/11/15 Javascript
Node.js对MongoDB进行增删改查操作的实例代码
2019/04/18 Javascript
浅谈vuex为什么不建议在action中修改state
2020/02/02 Javascript
viewer.js一个强大的基于jQuery的图像查看插件(支持旋转、缩放)
2020/04/01 jQuery
google广告之另类js调用实现代码
2020/08/22 Javascript
python的dict,set,list,tuple应用详解
2014/07/24 Python
Python内置函数—vars的具体使用方法
2017/12/04 Python
深入了解Python中pop和remove的使用方法
2018/01/09 Python
Python2.7.10以上pip更新及其他包的安装教程
2018/06/12 Python
利用Python将每日一句定时推送至微信的实现方法
2018/08/13 Python
python绘制简单彩虹图
2018/11/19 Python
详解python持久化文件读写
2019/04/06 Python
django 扩展user用户字段inlines方式
2020/03/30 Python
美国CVS药店官网:CVS Pharmacy
2018/07/26 全球购物
初中班级口号
2014/06/09 职场文书
车辆委托书范本
2014/10/05 职场文书
2015年幼儿园安全工作总结
2015/05/12 职场文书
Python OpenCV实现传统图片格式与base64转换
2021/06/13 Python