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处理中文编码和判断编码示例
Feb 26 Python
Python实现的简单文件传输服务器和客户端
Apr 08 Python
python dict.get()和dict['key']的区别详解
Jun 30 Python
Python使用内置json模块解析json格式数据的方法
Jul 20 Python
Python中Selenium模拟JQuery滑动解锁实例
Jul 26 Python
python实现用户答题功能
Jan 17 Python
解决django 新增加用户信息出现错误的问题
Jul 28 Python
python字典的遍历3种方法详解
Aug 10 Python
解决Pytorch 训练与测试时爆显存(out of memory)的问题
Aug 20 Python
python打印直角三角形与等腰三角形实例代码
Oct 20 Python
Python+OpenCV实现在图像上绘制矩形
Mar 21 Python
4种方法python批量修改替换列表中元素
Apr 07 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
php处理斐波那契数列非递归方法
2012/02/04 PHP
基于php iconv函数的使用详解
2013/06/09 PHP
YII模块实现绑定二级域名的方法
2014/07/09 PHP
人脸识别测颜值、测脸龄、测相似度微信接口
2016/04/07 PHP
PHP给源代码加密的几种方法汇总(推荐)
2018/02/06 PHP
自动更新作用
2006/10/08 Javascript
解javascript 混淆加密收藏
2009/01/16 Javascript
javascript 原型模式实现OOP的再研究
2009/04/09 Javascript
基于jquery的超简单上下翻
2010/04/20 Javascript
jquery $.ajax()取xml数据的小问题解决方法
2010/11/20 Javascript
使用JS 清空File控件的路径值
2013/07/08 Javascript
js禁止页面复制功能禁用页面右键菜单示例代码
2013/08/29 Javascript
JAVASCRIPT模式窗口中下载文件无法接收iframe的流
2013/10/11 Javascript
javascript的alert box在java中如何显示多行
2014/05/18 Javascript
浅谈javascript的分号的使用
2015/05/12 Javascript
JavaScript实现ASC转汉字及汉字转ASC的方法
2016/01/23 Javascript
JavaScript实现图片轮播组件代码示例
2016/11/22 Javascript
JS实现分页浏览横向图片(类轮播)实例代码
2017/11/06 Javascript
浅析Vue实例以及生命周期
2018/08/14 Javascript
微信小程序封装的HTTP请求示例【附升级版】
2019/05/11 Javascript
Vue路由对象属性 .meta $route.matched详解
2019/11/04 Javascript
[47:12]TFT vs Secret Supermajor小组赛C组 BO3 第三场 6.3
2018/06/04 DOTA
[49:43]VG vs FNATIC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
使用Python读写及压缩和解压缩文件的示例
2016/07/08 Python
python爬取m3u8连接的视频
2018/02/28 Python
python求解汉诺塔游戏
2020/07/09 Python
Python 如何测试文件是否存在
2020/07/31 Python
台湾团购、宅配和优惠券:17Life
2017/08/14 全球购物
Room Mate Hotels美国:西班牙酒店品牌
2018/04/10 全球购物
退休感言
2014/01/28 职场文书
授权委托书怎么写
2014/04/03 职场文书
镇人大副主席民主生活会对照检查材料思想汇报
2014/10/01 职场文书
党的群众路线教育实践活动整改落实情况报告
2014/10/28 职场文书
上课迟到检讨书
2015/05/06 职场文书
学生会自荐信
2019/05/16 职场文书
CSS3 制作的悬停缩放特效
2021/04/13 HTML / CSS