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使用urllib模块和pyquery实现阿里巴巴排名查询
Jan 16 Python
Python迭代和迭代器详解
Nov 10 Python
Python中常用信号signal类型实例
Jan 25 Python
python向字符串中添加元素的实例方法
Jun 28 Python
纯python进行矩阵的相乘运算的方法示例
Jul 17 Python
python生成器推导式用法简单示例
Oct 08 Python
python 通过视频url获取视频的宽高方式
Dec 10 Python
python随机生成大小写字母数字混合密码(仅20行代码)
Feb 01 Python
Jupyter加载文件的实现方法
Apr 14 Python
python中实现栈的三种方法
Dec 19 Python
python中@property的作用和getter setter的解释
Dec 22 Python
pytorch 6 batch_train 批训练操作
May 28 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中常用的字符串格式化函数总结
2014/11/19 PHP
微信公众号模板消息群发php代码示例
2016/12/29 PHP
PHP 信号管理知识整理汇总
2017/02/19 PHP
多个Laravel项目如何共用migrations详解
2018/09/25 PHP
Prototype使用指南之selector.js说明
2008/10/26 Javascript
jQuery+CSS 实现的超Sexy下拉菜单
2010/01/17 Javascript
Asp.net下使用Jquery Ajax传送和接收DataTable的代码
2010/09/12 Javascript
js编码之encodeURIComponent使用介绍(asp,php)
2012/03/01 Javascript
Angularjs在初始化未完毕时出现闪烁问题的解决方法分析
2016/08/05 Javascript
javascript中递归的两种写法
2017/01/17 Javascript
JS实现为动态创建的元素添加事件操作示例
2018/03/17 Javascript
纯js封装的ajax功能函数与用法示例
2018/05/14 Javascript
element-ui upload组件多文件上传的示例代码
2018/10/17 Javascript
深入理解移动前端开发之viewport
2018/10/19 Javascript
TypeScript基础入门教程之三重斜线指令详解
2018/10/22 Javascript
vue双向绑定及观察者模式详解
2019/03/19 Javascript
node实现爬虫的几种简易方式
2019/08/22 Javascript
vue之debounce属性被移除及处理详解
2019/11/13 Javascript
python使用PyGame模块播放声音的方法
2015/05/20 Python
在Python中使用next()方法操作文件的教程
2015/05/24 Python
Python操作Word批量生成文章的方法
2015/07/28 Python
python控制台中实现进度条功能
2015/11/10 Python
设计模式中的原型模式在Python程序中的应用示例
2016/03/02 Python
Python2.X/Python3.X中urllib库区别讲解
2017/12/19 Python
Python 通过打码平台实现验证码的实现
2019/05/13 Python
python判断所输入的任意一个正整数是否为素数的两种方法
2019/06/27 Python
Python 使用list和tuple+条件判断详解
2019/07/30 Python
如何在django中实现分页功能
2020/04/22 Python
Roots加拿大官网:加拿大休闲服饰品牌
2016/10/24 全球购物
台湾网友喜爱的综合型网路购物商城:Yahoo! 奇摩购物中心
2018/03/10 全球购物
超市收银员岗位职责
2015/04/07 职场文书
施工安全员岗位职责
2015/04/11 职场文书
承诺书的签字人,需不需要承担相应的责任?
2019/07/09 职场文书
用JS创建一个录屏功能
2021/11/11 Javascript
DSP接收机前端设想
2022/04/05 无线电
MySQL的意向共享锁、意向排它锁和死锁
2022/07/15 MySQL