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使用post提交数据到远程url的方法
Apr 29 Python
Python使用Redis实现作业调度系统(超简单)
Mar 22 Python
Python实现计算两个时间之间相差天数的方法
May 10 Python
Python基于动态规划算法解决01背包问题实例
Dec 06 Python
Python判断两个对象相等的原理
Dec 12 Python
python使用os.listdir和os.walk获得文件的路径的方法
Dec 16 Python
python3爬虫之设计签名小程序
Jun 19 Python
Python读取txt内容写入xls格式excel中的方法
Oct 11 Python
python实现ssh及sftp功能(实例代码)
Mar 16 Python
python opencv 实现读取、显示、写入图像的方法
Jun 08 Python
Django之腾讯云短信的实现
Jun 12 Python
学点简单的Django之第一个Django程序的实现
Feb 24 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版(2)
2006/10/09 PHP
PHP读取文件并可支持远程文件的代码分享
2012/10/03 PHP
PHP扩展程序实现守护进程
2015/04/16 PHP
php mysql实现mysql_select_db选择数据库
2016/12/30 PHP
prototype 1.5 & scriptaculous 1.6.1 学习笔记
2006/09/07 Javascript
javascript getElementsByClassName函数
2010/04/01 Javascript
Jquery下attr和removeAttr的使用方法
2010/12/28 Javascript
JQuery里选择超链接的实现代码
2011/05/22 Javascript
js工具方法弹出蒙版
2013/05/08 Javascript
JQuery的ready函数与JS的onload的区别详解
2013/11/21 Javascript
Extjs4中Form的使用之本地hiddenfield
2013/11/26 Javascript
js调试系列 控制台命令行API使用方法
2014/06/18 Javascript
全面理解JavaScript中的闭包
2016/05/12 Javascript
原生js实现自由拖拽弹窗代码demo
2016/06/29 Javascript
Vue Ajax跨域请求实例详解
2017/06/20 Javascript
jQuery操作DOM_动力节点Java学院整理
2017/07/04 jQuery
Vue数据监听方法watch的使用
2018/03/28 Javascript
微信小程序swiper实现滑动放大缩小效果
2018/11/15 Javascript
Nginx设置为Node.js的前端服务器方法总结
2019/03/27 Javascript
前端插件之Bootstrap Dual Listbox使用教程
2019/07/23 Javascript
使用Python的Twisted框架编写简单的网络客户端
2015/04/16 Python
在Django框架中编写Context处理器的方法
2015/07/20 Python
Python中那些 Pythonic的写法详解
2019/07/02 Python
python实现kNN算法识别手写体数字的示例代码
2019/08/16 Python
python+selenium+PhantomJS抓取网页动态加载内容
2020/02/25 Python
马来西亚网上购物:Youbeli
2018/03/30 全球购物
Omio葡萄牙:全欧洲低价大巴、火车和航班搜索和比价
2019/02/09 全球购物
办公室主任岗位职责
2013/11/08 职场文书
护理专业大学生自我推荐信
2014/01/25 职场文书
文秘档案管理岗位职责
2014/03/06 职场文书
少先队学雷锋活动总结范文
2014/03/09 职场文书
出纳试用期自我鉴定
2014/04/07 职场文书
兽医医药专业求职信
2014/07/27 职场文书
保证书格式
2015/01/16 职场文书
党员学习型组织心得体会
2019/06/21 职场文书
教你使用一行Python代码玩遍童年的小游戏
2021/08/23 Python