简单谈谈python中的lambda表达式


Posted in Python onJanuary 19, 2018

最近在coding时发现使用lambda还是有诸多优点的,很多时候代码更整洁,更pythonic,所以在此简单总结一下

1.lambda是什么

举个简单的例子:

func = lambda x: x*x

def func(x):
 return x*x

两个func的定义是完全相同的,那两种函数定义方法配合map使用,将list中所有元素求平方,代码会是什么样的,

def func(x):
  return x*x
map(func, [i for i in range(10)])
map(lambda x: x*x, [i for i in range(10)])

对比之下,效果还是显而易见。首先func函数的功能十分简单,而且很有可能只使用这一次,所以说我们在这里定义了一个功能简单、使用频次不高的函数。在这个例子中,使用lambda创建匿名函数不但不会影响代码的可读性,还能精简代码,减少不必要的函数调用。其实这种场景很常见,我们需要一个简单的单行函数,做一件简单的事,我们甚至连函数的名字都无需在意,此时lambda就是我们不错的选择。

2.是否使用lambda

lambda定义了一个匿名函数,使用它并不会带来代码执行效率的提升。lambda通常与map,reduce,filter在遍历列表时配合使用,但是一味的追求lambda的使用,对代码可读性往往带来灾难性的后果。python对lambda有着严苛的约束,毕竟它只能由一条表达式组成。lambda很方便不假,但是如果使用过度,程序的逻辑性看起来就不那么清晰,毕竟每个人对抽象的理解是不同的。

如果一个列表生成式,仅使用for,if,in就能实现,我不会使用lambda

如果函数不足够简单,涉及到循环等复杂逻辑,我会定义函数,让代码更具可读性,此时我不会使用lambda

在我看来,lambda的存在是为了减少单行函数的定义,所以只用来代替单行函数的定义就足够了。

Python 相关文章推荐
在Python的Flask框架下使用sqlalchemy库的简单教程
Apr 09 Python
Python使用urllib2模块实现断点续传下载的方法
Jun 17 Python
python中的decimal类型转换实例详解
Jun 26 Python
浅谈Pandas Series 和 Numpy array中的相同点
Jun 28 Python
python用for循环求和的方法总结
Jul 08 Python
对python中url参数编码与解码的实例详解
Jul 25 Python
Scrapy框架基本命令与settings.py设置
Feb 06 Python
python数据爬下来保存的位置
Feb 17 Python
关于Python字符串显示u...的解决方式
Mar 06 Python
python搜索算法原理及实例讲解
Nov 18 Python
Django + Taro 前后端分离项目实现企业微信登录功能
Apr 07 Python
利用Python实现翻译HTML中的文本字符串
Jun 21 Python
python使用logging模块发送邮件代码示例
Jan 18 #Python
zookeeper python接口实例详解
Jan 18 #Python
Python获取当前函数名称方法实例分享
Jan 18 #Python
Python AES加密实例解析
Jan 18 #Python
快速了解python leveldb
Jan 18 #Python
Python实现动态图解析、合成与倒放
Jan 18 #Python
Python基于matplotlib实现绘制三维图形功能示例
Jan 18 #Python
You might like
聊天室php&mysql(四)
2006/10/09 PHP
服务器端解压缩zip的脚本
2006/12/22 PHP
php重定向的三种方法分享
2012/02/22 PHP
Php output buffering缓存及程序缓存深入解析
2013/07/15 PHP
根据ip调用新浪api获取城市名并转成拼音
2014/03/07 PHP
PHP中开启gzip压缩的2种方法
2015/01/31 PHP
Laravel 5框架学习之Laravel入门和新建项目
2015/04/07 PHP
php文件类型MIME对照表(比较全)
2016/10/07 PHP
php中static 静态变量和普通变量的区别
2016/12/01 PHP
Jquery UI震动效果实现原理及步骤
2013/02/04 Javascript
javascript数组去重方法汇总
2015/04/23 Javascript
JQuery控制Radio选中方法分析
2015/05/29 Javascript
解析ajaxFileUpload 异步上传文件简单使用
2016/12/30 Javascript
Web技术实现移动监测的介绍
2017/09/18 Javascript
nodejs前端模板引擎swig入门详解
2018/05/15 NodeJs
Koa2微信公众号开发之消息管理
2018/05/16 Javascript
uni-app自定义导航栏按钮|uniapp仿微信顶部导航条功能
2019/11/12 Javascript
基于JavaScript实现留言板功能
2020/03/16 Javascript
ant design中upload组件上传大文件,显示进度条进度的实例
2020/10/29 Javascript
理解python正则表达式
2016/01/15 Python
python爬虫入门教程--HTML文本的解析库BeautifulSoup(四)
2017/05/25 Python
PyQt 线程类 QThread使用详解
2017/07/16 Python
找Python安装目录,设置环境路径以及在命令行运行python脚本实例
2020/03/09 Python
Python应用实现双指数函数及拟合代码实例
2020/06/19 Python
Django-celery-beat动态添加周期性任务实现过程解析
2020/11/26 Python
python requests库的使用
2021/01/06 Python
纯HTML+CSS3制作导航菜单(附源码)
2013/04/24 HTML / CSS
HelloFresh奥地利:立即订购烹饪盒
2019/02/22 全球购物
武汉东之林科技有限公司机试
2013/09/17 面试题
安全标语大全
2014/06/10 职场文书
街道务虚会发言材料
2014/10/20 职场文书
模范教师材料大全
2014/12/16 职场文书
东京审判观后感
2015/06/01 职场文书
MySQL读取JSON转换的方式
2022/03/18 MySQL
Java 超详细讲解IO操作字节流与字符流
2022/03/25 Java/Android
Python os和os.path模块详情
2022/04/02 Python