简单谈谈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中类的一些方法分析
Sep 25 Python
Python转换HTML到Text纯文本的方法
Jan 15 Python
初步讲解Python中的元组概念
May 21 Python
在Python 3中实现类型检查器的简单方法
Jul 03 Python
python中子类调用父类函数的方法示例
Aug 18 Python
基于python requests库中的代理实例讲解
May 07 Python
Python获取网段内ping通IP的方法
Jan 31 Python
使用python-pptx包批量修改ppt格式的实现
Feb 14 Python
opencv中图像叠加/图像融合/按位操作的实现
Apr 01 Python
Python爬虫如何应对Cloudflare邮箱加密
Jun 24 Python
浅谈keras使用预训练模型vgg16分类,损失和准确度不变
Jul 02 Python
python/golang实现循环链表的示例代码
Sep 14 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数组添加元素方法小结
2014/12/20 PHP
PHP实现根据图片色界在不同位置加水印的方法
2015/08/08 PHP
Yii2实现中国省市区三级联动实例
2017/02/08 PHP
简短几句jquery代码的实现一个图片向上滚动切换
2011/09/02 Javascript
利用cookie记住背景颜色示例代码
2013/11/04 Javascript
js保留小数点后几位的写法
2014/01/03 Javascript
10分钟学会写Jquery插件实例教程
2014/09/06 Javascript
JavaScript获取各大浏览器信息图示
2015/11/20 Javascript
基于Three.js插件制作360度全景图
2016/11/29 Javascript
bootstrap table分页模板和获取表中的ID方法
2017/01/10 Javascript
jQuery插件echarts设置折线图中折线线条颜色和折线点颜色的方法
2017/03/03 Javascript
解析jquery easyui tree异步加载子节点问题
2017/03/08 Javascript
angular2系列之路由转场动画的示例代码
2017/11/09 Javascript
vue中mint-ui的使用方法
2018/04/04 Javascript
用POSTMAN发送JSON格式的POST请求示例
2018/09/04 Javascript
JQuery特殊效果和链式调用操作示例
2019/05/13 jQuery
JavaScript数组排序的六种常见算法总结
2020/08/18 Javascript
Nuxt.js nuxt-link与router-link的区别说明
2020/11/06 Javascript
Python中的index()方法使用教程
2015/05/18 Python
使用python和pygame绘制繁花曲线的方法
2018/02/24 Python
Python决策树之基于信息增益的特征选择示例
2018/06/25 Python
pygame实现俄罗斯方块游戏
2018/06/26 Python
python多线程调用exit无法退出的解决方法
2019/02/18 Python
Python和Java的语法对比分析语法简洁上python的确完美胜出
2019/05/10 Python
解决Django中checkbox复选框的传值问题
2020/03/31 Python
Python tkinter制作单机五子棋游戏
2020/09/14 Python
jupyter notebook快速入门及使用详解
2020/11/13 Python
使用CSS3的appearance属性改变任何元素的浏览器默认风格
2012/12/24 HTML / CSS
芬兰汽车配件商店:Autonvaraosat24
2017/01/30 全球购物
EMU Australia澳大利亚官网:澳大利亚本土雪地靴品牌
2019/07/24 全球购物
如何查找网页漏洞
2016/06/22 面试题
财务会计毕业生自荐信
2013/11/02 职场文书
《窗前的气球》教学反思
2014/04/07 职场文书
正科级干部考察材料
2014/05/29 职场文书
群众路线四风对照检查材料
2014/11/04 职场文书
手残删除python之后的补救方法
2021/06/26 Python