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数据结构树和二叉树简介
Apr 29 Python
Python字符串格式化%s%d%f详解
Feb 02 Python
numpy找出array中的最大值,最小值实例
Apr 03 Python
Python 函数返回值的示例代码
Mar 11 Python
python实现键盘输入的实操方法
Jul 16 Python
tensorflow如何批量读取图片
Aug 29 Python
python中seaborn包常用图形使用详解
Nov 25 Python
Python 使用threading+Queue实现线程池示例
Dec 21 Python
Python进程的通信Queue、Pipe实例分析
Mar 30 Python
Python实现电视里的5毛特效实例代码详解
May 15 Python
用OpenCV进行年龄和性别检测的实现示例
Jan 29 Python
如何解决.cuda()加载用时很长的问题
May 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
PHP7 新特性详细介绍
2016/09/06 PHP
Javascript常考语句107条收集
2010/03/09 Javascript
使用js解决由border属性引起的div宽度问题
2013/11/26 Javascript
jQuery制作简洁的多级联动Select下拉框
2014/12/23 Javascript
SuperSlide标签切换、焦点图多种组合插件
2015/03/14 Javascript
js字符串截取函数slice、substring和substr的比较
2016/05/17 Javascript
iframe中使用jquery进行查找的方法【案例分析】
2016/06/17 Javascript
BetterScroll 在移动端滚动场景的应用
2017/09/18 Javascript
详解promise.then,process.nextTick, setTimeout 以及 setImmediate的执行顺序
2018/11/21 Javascript
Vue.js的复用组件开发流程完整记录
2018/11/29 Javascript
vue项目刷新当前页面的三种方法
2018/12/04 Javascript
js最实用string(字符串)类型的使用及截取与拼接详解
2019/04/26 Javascript
vue 翻页组件vue-flip-page效果
2020/02/05 Javascript
vue中实现图片压缩 file文件的方法
2020/05/28 Javascript
JavaScript多种图形实现代码实例
2020/06/28 Javascript
[58:42]DOTA2上海特级锦标赛C组败者赛 Newbee VS Archon第一局
2016/02/27 DOTA
[08:17]Ti9 现场cosplay
2019/09/10 DOTA
探究数组排序提升Python程序的循环的运行效率的原因
2015/04/01 Python
Django中使用locals()函数的技巧
2015/07/16 Python
十个Python程序员易犯的错误
2015/12/15 Python
python魔法方法-属性访问控制详解
2016/07/25 Python
Python操作Redis之设置key的过期时间实例代码
2018/01/25 Python
从0开始的Python学习016异常
2019/04/08 Python
Python split() 函数拆分字符串将字符串转化为列的方法
2019/07/16 Python
python selenium实现发送带附件的邮件代码实例
2019/12/10 Python
python实现交并比IOU教程
2020/04/16 Python
CSS3 background-image颜色渐变的实现代码
2018/09/13 HTML / CSS
Canvas实现放大镜效果完整案例分析(附代码)
2020/11/26 HTML / CSS
将一个文本文件的内容按倒序打印出来
2015/01/05 面试题
《小熊住山洞》教学反思
2014/02/21 职场文书
环保公益策划方案
2014/08/15 职场文书
2014优秀大学生简历自我评价
2014/09/15 职场文书
办公室岗位职责
2015/02/04 职场文书
canvas多重阴影发光效果实现
2021/04/20 Javascript
Python序列化与反序列化相关知识总结
2021/06/08 Python
docker compose 部署 golang 的 Athens 私有代理问题
2022/04/28 Servers