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实现爬取需要登录的网站完整示例
Aug 19 Python
Python干货:分享Python绘制六种可视化图表
Aug 27 Python
selenium + python 获取table数据的示例讲解
Oct 13 Python
python读取word 中指定位置的表格及表格数据
Oct 23 Python
python hash每次调用结果不同的原因
Nov 21 Python
pytorch对梯度进行可视化进行梯度检查教程
Feb 04 Python
python对Excel的读取的示例代码
Feb 14 Python
PyQt中使用QtSql连接MySql数据库的方法
Jul 28 Python
Python爬虫抓取论坛关键字过程解析
Oct 19 Python
利用Python将多张图片合成视频的实现
Nov 23 Python
python自动生成证件号的方法示例
Jan 14 Python
python实现的web监控系统
Apr 27 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 json_encode中文乱码问题的解决办法
2013/09/09 PHP
PHP微信PC二维码登陆的实现思路
2017/07/13 PHP
phpStorm2020 注册码
2020/09/17 PHP
jQuery库与其他JS库冲突的解决办法
2010/02/07 Javascript
JavaScript版DateAdd和DateDiff函数代码
2012/03/01 Javascript
JavaScript中变量提升 Hoisting
2012/07/03 Javascript
使用js在页面中绘制表格核心代码
2013/09/16 Javascript
js中定义一个变量并判断其是否为空的方法
2014/05/13 Javascript
Node.js中使用计时器定时执行函数详解
2014/08/15 Javascript
js中数组结合字符串实现查找(屏蔽广告判断url等)
2016/03/30 Javascript
RequireJS使用注意细节
2016/05/15 Javascript
JS脚本实现动态给标签控件添加事件的方法
2016/06/02 Javascript
Vue数据驱动模拟实现5
2017/01/13 Javascript
微信小程序网络请求wx.request详解及实例
2017/05/18 Javascript
vue中axios处理http发送请求的示例(Post和get)
2017/10/13 Javascript
AngularJS2 与 D3.js集成实现自定义可视化的方法
2017/12/01 Javascript
angularJs 表格添加删除修改查询方法
2018/02/27 Javascript
详解在网页上通过JS实现文本的语音朗读
2019/03/28 Javascript
vue路由对不同界面进行传参及跳转的总结
2019/04/20 Javascript
vue 使用原生组件上传图片的实例
2020/09/08 Javascript
[00:12]2018DOTA2亚洲邀请赛 Sccc亮相SOLO赛,今年他又会有什么样的战绩?
2018/04/06 DOTA
python原始套接字编程示例分享
2014/02/21 Python
深入理解Django的自定义过滤器
2017/10/17 Python
Python3基于sax解析xml操作示例
2018/05/22 Python
python仿抖音表白神器
2019/04/08 Python
pytorch 状态字典:state_dict使用详解
2020/01/17 Python
使用Python将Exception异常错误堆栈信息写入日志文件
2020/04/08 Python
PyTorch中torch.tensor与torch.Tensor的区别详解
2020/05/18 Python
一个精品风格的世界:Atterley
2019/05/01 全球购物
The Outnet亚太地区:折扣设计师时装店
2019/12/05 全球购物
英国拖鞋购买网站:Bedroom Athletics
2020/02/28 全球购物
党员个人查摆剖析材料
2014/10/16 职场文书
2015年财政所工作总结
2015/04/25 职场文书
python实现大文本文件分割成多个小文件
2021/04/20 Python
MySQL5.7并行复制原理及实现
2021/06/03 MySQL
浅谈PostgreSQL表分区的三种方式
2021/06/29 PostgreSQL