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 ftp上传文件
Feb 13 Python
Python只用40行代码编写的计算器实例
May 10 Python
解决Python print输出不换行没空格的问题
Nov 14 Python
Python 创建新文件时避免覆盖已有的同名文件的解决方法
Nov 16 Python
Python 的AES加密与解密实现
Jul 09 Python
Python3离线安装Requests模块问题
Oct 13 Python
python使用正则表达式(Regular Expression)方法超详细
Dec 30 Python
Python图像处理库PIL的ImageEnhance模块使用介绍
Feb 26 Python
使用 Python 在京东上抢口罩的思路详解
Feb 27 Python
解决Jupyter NoteBook输出的图表太小看不清问题
Apr 16 Python
Python环境搭建过程从安装到Hello World
Feb 05 Python
Python卷积神经网络图片分类框架详解分析
Nov 07 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
openPNE常用方法分享
2011/11/29 PHP
PHP读取配置文件类实例(可读取ini,yaml,xml等)
2015/07/28 PHP
老生常谈文本文件和二进制文件的区别
2017/02/27 PHP
javascript 节点遍历函数
2010/03/28 Javascript
XMLHTTPRequest的属性和方法简介
2010/11/23 Javascript
poshytip 基于jquery的 插件 主要用于显示微博人的图像和鼠标提示等
2012/10/12 Javascript
js 单击式的下拉菜单效果实例
2013/08/13 Javascript
jquery点击缩略图切换视频播放特效代码分享
2015/09/15 Javascript
Angularjs注入拦截器实现Loading效果
2015/12/28 Javascript
JavaScript事件详细讲解
2016/06/27 Javascript
浅谈时钟的生成(js手写简洁代码)
2016/08/20 Javascript
jQuery Mobile漏洞会有跨站脚本攻击风险
2017/02/12 Javascript
jQuery滑动效果实现方法分析
2018/09/05 jQuery
vue webpack开发访问后台接口全局配置的方法
2018/09/18 Javascript
微信小程序整合使用富文本编辑器的方法详解
2019/04/25 Javascript
JS中封装axios来管控api的2种方式
2019/09/11 Javascript
jquery轮播图插件使用方法详解
2020/07/31 jQuery
vue-amap根据地址回显地图并mark的操作
2020/11/03 Javascript
python之PyMongo使用总结
2017/05/26 Python
python实现微信发送邮件关闭电脑功能
2018/02/22 Python
基于python 处理中文路径的终极解决方法
2018/04/12 Python
Python中的Numpy矩阵操作
2018/08/12 Python
python实现本地图片转存并重命名的示例代码
2018/10/27 Python
常用python爬虫库介绍与简要说明
2020/01/25 Python
用html5的canvas画布绘制贝塞尔曲线完整代码
2013/08/14 HTML / CSS
当x.equals(y)等于true时,x.hashCode()与y.hashCode()可以不相等,这句话对不对
2015/05/02 面试题
检察官就职演讲稿
2014/01/13 职场文书
《小松树和大松树》教学反思
2014/02/20 职场文书
幼儿园母亲节活动方案
2014/03/10 职场文书
爱心捐款倡议书
2014/04/14 职场文书
2014年村支部书记四风对照检查材料思想汇报
2014/10/02 职场文书
高考作弊检讨书1500字
2015/02/16 职场文书
审查起诉阶段律师意见书
2015/05/19 职场文书
干部理论学习心得体会
2016/01/21 职场文书
HTML+CSS制作心跳特效的实现
2021/05/26 HTML / CSS
利用Python+OpenCV三步去除水印
2021/05/28 Python