Python lambda表达式用法实例分析


Posted in Python onDecember 25, 2018

本文实例讲述了Python lambda表达式用法。分享给大家供大家参考,具体如下:

lambda表达式,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数。

lambda所表示的匿名函数的内容应该是很简单的,如果复杂的话,干脆就重新定义一个函数了,使用lambda就有点过于执拗了。

lambda就是用来定义一个匿名函数的,如果还要给他绑定一个名字的话,就会显得有点画蛇添足,通常是直接使用lambda函数。如下所示:

add = lambda x, y : x+y
add(1,2) # 结果为3

那么到底要如何使用lambda表达式呢?

1、应用在函数式编程中

Python提供了很多函数式编程的特性,如:map、reduce、filter、sorted等这些函数都支持函数作为参数,lambda函数就可以应用在函数式编程中。如下:

# 需求:将列表中的元素按照绝对值大小进行升序排列
list1 = [3,5,-4,-1,0,-2,-6]
sorted(list1, key=lambda x: abs(x))

运行结果:

[0, -1, -2, 3, -4, 5, -6]

当然,也可以如下:

list1 = [3,5,-4,-1,0,-2,-6]
def get_abs(x):
  return abs(x)
sorted(list1,key=get_abs)

只不过这种方式的代码看起来不够Pythonic

2、应用在闭包中

def get_y(a,b):
   return lambda x:ax+b
y1 = get_y(1,1)
y1(1) # 结果为2

当然,也可以用常规函数实现闭包,如下:

def get_y(a,b):
  def func(x):
    return ax+b
  return func
y1 = get_y(1,1)
y1(1) # 结果为2

只不过这种方式显得有点??隆?/p>

那么是不是任何情况下lambda函数都要比常规函数更清晰明了呢?

肯定不是。

Python之禅中有这么一句话:Explicit is better than implicit(明了胜于晦涩),就是说那种方式更清晰就用哪一种方式,不要盲目的都使用lambda表达式。

更多关于Python相关内容可查看本站专题:《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python调用机器喇叭发出蜂鸣声(Beep)的方法
Mar 23 Python
Python矩阵常见运算操作实例总结
Sep 29 Python
python smtplib模块实现发送邮件带附件sendmail
May 22 Python
python sys.argv[]用法实例详解
May 25 Python
pytorch 自定义数据集加载方法
Aug 18 Python
Django使用中间件解决前后端同源策略问题
Sep 02 Python
Python Web静态服务器非堵塞模式实现方法示例
Nov 21 Python
使用Tensorflow实现可视化中间层和卷积层
Jan 24 Python
Python selenium 加载并保存QQ群成员,去除其群主、管理员信息的示例代码
May 28 Python
Python连接Impala实现步骤解析
Aug 04 Python
python+pygame实现坦克大战小游戏的示例代码(可以自定义子弹速度)
Aug 11 Python
python各种excel写入方式的速度对比
Nov 10 Python
Python实现针对json中某个关键字段进行排序操作示例
Dec 25 #Python
浅谈python 读excel数值为浮点型的问题
Dec 25 #Python
对python中xlsx,csv以及json文件的相互转化方法详解
Dec 25 #Python
解决python xlrd无法读取excel文件的问题
Dec 25 #Python
python读取xlsx的方法
Dec 25 #Python
Python 从列表中取值和取索引的方法
Dec 25 #Python
python 遍历列表提取下标和值的实例
Dec 25 #Python
You might like
PHP5.3安装Zend Guard Loader图文教程
2014/09/29 PHP
PHP文件上传判断file是否己选择上传文件的方法
2014/11/10 PHP
php实现的任意进制互转类分享
2015/07/07 PHP
Netbeans 8.2与PHP相关的新特性介绍
2016/10/08 PHP
JS window.opener返回父页面的应用
2009/10/24 Javascript
javascript innerText和innerHtml应用
2010/01/28 Javascript
CutePsWheel javascript libary 控制输入文本框为可使用滚轮控制的js库
2010/02/07 Javascript
js判断变量初始化的三种形式及推荐用的形式
2014/07/22 Javascript
jQuery中removeClass()方法用法实例
2015/01/05 Javascript
jQuery鼠标事件汇总
2015/08/30 Javascript
Node.js静态文件服务器改进版
2016/01/10 Javascript
原生JS查找元素的方法(推荐)
2016/11/22 Javascript
深入理解基于vue-cli的vuex配置
2017/07/24 Javascript
jQuery实现锚点向下平滑滚动特效示例
2017/08/29 jQuery
详解cordova打包成webapp的方法
2017/10/18 Javascript
JS设计模式之访问者模式定义与用法分析
2018/02/05 Javascript
微信小程序之圆形进度条实现思路
2018/02/22 Javascript
浅谈Webpack核心模块tapable解析
2018/09/11 Javascript
Node.js中Koa2在控制台输出请求日志的方法示例
2019/05/02 Javascript
javascript使用正则表达式实现注册登入校验
2020/09/23 Javascript
如何使用gpu.js改善JavaScript的性能
2020/12/01 Javascript
Python 使用requests模块发送GET和POST请求的实现代码
2016/09/21 Python
python实现LBP方法提取图像纹理特征实现分类的步骤
2019/07/11 Python
OpenCV 表盘指针自动读数的示例代码
2020/04/10 Python
python 解决mysql where in 对列表(list,,array)问题
2020/06/06 Python
HTML5 Canvas 起步(2) - 路径
2009/05/12 HTML / CSS
设计师珠宝:Ylang 23
2018/05/11 全球购物
彪马西班牙官网:PUMA西班牙
2019/06/18 全球购物
假日旅行社实习自我鉴定
2013/09/24 职场文书
公司业务主管岗位职责
2013/12/07 职场文书
项目副经理岗位职责
2013/12/30 职场文书
作风年建设汇报材料
2014/08/14 职场文书
超强台风观后感
2015/06/09 职场文书
士兵突击观后感
2015/06/16 职场文书
《赵州桥》教学反思
2016/02/17 职场文书
Pandas 数据编码的十种方法
2022/04/20 Python