简单谈谈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基础教程之面向对象的一些概念
Aug 29 Python
Python 登录网站详解及实例
Apr 11 Python
Pyspider中给爬虫伪造随机请求头的实例
May 07 Python
Python3数字求和的实例
Feb 19 Python
python快排算法详解
Mar 04 Python
在python中画正态分布图像的实例
Jul 08 Python
python等差数列求和公式前 100 项的和实例
Feb 25 Python
Jupyter notebook 启动闪退问题的解决
Apr 13 Python
Python 保存加载mat格式文件的示例代码
Aug 04 Python
总结Pyinstaller的坑及终极解决方法(小结)
Sep 21 Python
python爬取某网站原图作为壁纸
Jun 02 Python
Pandas 数据编码的十种方法
Apr 20 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的ajax框架xajax入门与试用介绍
2010/12/19 PHP
php将textarea数据提交到mysql出现很多空格的解决方法
2014/12/19 PHP
php和editplus正则表达式去除空白行
2015/04/17 PHP
微信开发之网页授权获取用户信息(二)
2016/01/08 PHP
详解php伪造Referer请求反盗链资源
2019/01/24 PHP
学习ExtJS Column布局
2009/10/08 Javascript
Raphael一个用于在网页中绘制矢量图形的Javascript库
2013/01/08 Javascript
JS实现仿新浪黄色经典滑动门效果代码
2015/09/27 Javascript
实例讲解jQuery中对事件的命名空间的运用
2016/05/24 Javascript
BootStrap无限级分类(无限极分类封装版)
2016/08/26 Javascript
表单元素值获取方式js及java方式的简单实例
2016/10/15 Javascript
javascript淘宝主图放大镜功能
2016/10/20 Javascript
jQuery的中 is(':visible') 解析及用法(必看)
2017/02/12 Javascript
详解VUE Element-UI多级菜单动态渲染的组件
2019/04/25 Javascript
Vue侦测相关api的实现方法
2019/05/22 Javascript
Vue封装的组件全局注册并引用
2019/07/24 Javascript
javascript实现前端成语点击验证
2020/06/24 Javascript
[05:46]2018完美盛典-《同梦共竞》
2018/12/17 DOTA
Python3基础之输入和输出实例分析
2014/08/18 Python
Python使用bs4获取58同城城市分类的方法
2015/07/08 Python
python字符串对其居中显示的方法
2015/07/11 Python
Python编程中的for循环语句学习教程
2015/10/14 Python
用Python的Flask框架结合MySQL写一个内存监控程序
2015/11/07 Python
代码分析Python地图坐标转换
2018/02/08 Python
对Python 数组的切片操作详解
2018/07/02 Python
python--shutil移动文件到另一个路径的操作
2020/07/13 Python
EQVVS官网:设计师男装和女装
2018/10/24 全球购物
毕业自我鉴定
2013/11/05 职场文书
航海技术专业毕业生求职信
2014/04/06 职场文书
农村婚庆主持词
2015/06/29 职场文书
2015年教师节主持词
2015/07/03 职场文书
三十年同学聚会感言
2015/07/30 职场文书
JVM上高性能数据格式库包Apache Arrow入门和架构详解(Gkatziouras)
2021/05/26 Servers
Python Pandas pandas.read_sql_query函数实例用法分析
2021/06/21 Python
MongoDB连接数据库并创建数据等使用方法
2021/11/27 MongoDB
Java实现HTML转为Word的示例代码
2022/06/28 Java/Android