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正则表达式介绍
Aug 06 Python
Python中使用urllib2防止302跳转的代码例子
Jul 07 Python
使用python实现生成用户信息
Mar 20 Python
Python实现的选择排序算法原理与用法实例分析
Nov 22 Python
python+matplotlib实现动态绘制图片实例代码(交互式绘图)
Jan 20 Python
Python中装饰器学习总结
Feb 10 Python
python删除本地夹里重复文件的方法
Nov 19 Python
基于Python对数据shape的常见操作详解
Dec 25 Python
django创建超级用户过程解析
Sep 18 Python
python自动化测试无法启动谷歌浏览器问题
Oct 10 Python
opencv python图像梯度实例详解
Feb 04 Python
Python利用myqr库创建自己的二维码
Nov 24 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
虹吸壶煮咖啡26个注意事项
2021/03/03 冲泡冲煮
解析PHP工厂模式的好处
2013/06/18 PHP
php实现插入数组但不影响原有顺序的方法
2015/03/27 PHP
将PHP程序中返回的JSON格式数据用gzip压缩输出的方法
2016/03/03 PHP
javascript 中对象的继承〔转贴〕
2007/01/22 Javascript
JavaScript入门教程(11) js事件处理
2009/01/31 Javascript
jquery滚动组件(vticker.js)实现页面动态数据的滚动效果
2013/07/03 Javascript
javascript获取元素CSS样式代码示例
2013/11/28 Javascript
javascript 拷贝节点cloneNode()使用介绍
2014/04/03 Javascript
js实现同一页面多个运动效果的方法
2015/04/10 Javascript
为什么JS中eval处理JSON数据要加括号
2015/04/13 Javascript
jQuery simpleModal插件的使用介绍
2016/08/30 Javascript
springMVC + easyui + $.ajaxFileUpload实现文件上传注意事项
2017/04/23 Javascript
JS实现标签页切换效果
2017/05/04 Javascript
JS实现多张图片预览同步上传功能
2017/06/23 Javascript
vue v-model动态生成详解
2018/06/30 Javascript
使用JS代码实现俄罗斯方块游戏
2018/08/03 Javascript
JavaScript中AOP的实现与应用
2019/05/06 Javascript
nodejs实现日志读取、日志查找及日志刷新的方法分析
2019/05/20 NodeJs
js实现简单页面全屏
2019/09/17 Javascript
vue 使用微信jssdk,调用微信相册上传图片功能
2020/11/13 Javascript
vue中watch的用法汇总
2020/12/28 Vue.js
解决Python字典写入文件出行首行有空格的问题
2017/09/27 Python
python实现xlsx文件分析详解
2018/01/02 Python
Django读取Mysql数据并显示在前端的实例
2018/05/27 Python
python 求1-100之间的奇数或者偶数之和的实例
2019/06/11 Python
Python编译为二进制so可执行文件实例
2019/12/23 Python
Python如何实现邮件功能
2020/05/27 Python
亚马逊印度站:Amazon.in
2017/10/15 全球购物
Sahajan美国:阿育吠陀护肤品牌
2021/01/09 全球购物
工程项目经理岗位职责
2013/12/15 职场文书
广播体操口号
2014/06/18 职场文书
学校施工安全责任书
2015/01/29 职场文书
2015年父亲节寄语
2015/03/23 职场文书
预备党员入党感言
2015/08/01 职场文书
2019年教师节祝福语精选,给老师送上真诚的祝福
2019/09/09 职场文书