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 21 Python
Django实现组合搜索的方法示例
Jan 23 Python
对numpy中的where方法嵌套使用详解
Oct 31 Python
python实现字符串加密成纯数字
Mar 19 Python
python实现合并多个list及合并多个django QuerySet的方法示例
Jun 11 Python
决策树剪枝算法的python实现方法详解
Sep 18 Python
使用Tensorboard工具查看Loss损失率
Feb 15 Python
python3格式化字符串 f-string的高级用法(推荐)
Mar 04 Python
在django admin详情表单显示中添加自定义控件的实现
Mar 11 Python
在 Python 中利用 Pool 进行多线程
Apr 24 Python
Python使用pyecharts控件绘制图表
Jun 05 Python
深入理解pytorch库的dockerfile
Jun 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
德生PL450的电路分析和低放电路的改进办法
2021/03/02 无线电
PHP生成网页快照 不用COM不用扩展.
2010/02/11 PHP
APACHE的AcceptPathInfo指令使用介绍
2013/01/18 PHP
CI框架安全类Security.php源码分析
2014/11/04 PHP
详解PHP的Yii框架中扩展的安装与使用
2016/04/01 PHP
通过修改referer下载文件的方法
2008/05/11 Javascript
js继承的实现代码
2010/08/05 Javascript
js下关于onmouseout、事件冒泡的问题经验小结
2010/12/09 Javascript
Javascript模块化编程(一)模块的写法最佳实践
2013/01/17 Javascript
jquery自定义属性(类型/属性值)
2013/05/21 Javascript
Jquery自定义button按钮的几种方法
2014/06/11 Javascript
js onmousewheel事件多次触发问题解决方法
2014/10/17 Javascript
jQuery圆形统计图开发实例
2015/01/04 Javascript
vue-resource 拦截器使用详解
2017/02/21 Javascript
javascript内存分配原理实例分析
2017/04/10 Javascript
React为 Vue 引入容器组件和展示组件的教程详解
2018/05/03 Javascript
在vue中使用Autoprefixed的方法
2018/07/27 Javascript
在微信小程序里使用watch和computed的方法
2018/08/02 Javascript
解决vue项目中页面调用数据 在数据加载完毕之前出现undefined问题
2019/11/14 Javascript
原生js实现简单轮播图
2020/10/26 Javascript
详解Java中String JSONObject JSONArray List转换
2020/11/13 Javascript
angular *Ngif else用法详解
2020/12/15 Javascript
原生js实现自定义滚动条组件
2021/01/20 Javascript
Python实现针对中文排序的方法
2017/05/09 Python
python 调用钉钉机器人的方法
2019/02/20 Python
解决Pycharm 导入其他文件夹源码的2种方法
2020/02/12 Python
英国女性化妆品收纳和家具网站:Beautify
2019/12/07 全球购物
PHP如何对用户密码进行加密
2014/07/31 面试题
汇科协同Java笔试题
2012/03/31 面试题
高中家长寄语
2014/04/02 职场文书
《生命 生命》教学反思
2014/04/19 职场文书
关爱残疾人演讲稿
2014/05/24 职场文书
数学兴趣小组活动总结
2014/07/08 职场文书
农村门前三包责任书
2014/07/25 职场文书
2014年基层党支部工作总结
2014/12/04 职场文书
九年级语文教学反思
2016/03/03 职场文书