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 打印出所有的对象/模块的属性(实例代码)
Sep 11 Python
python字符串string的内置方法实例详解
May 14 Python
python中plot实现即时数据动态显示方法
Jun 22 Python
关于python写入文件自动换行的问题
Jun 23 Python
详解python解压压缩包的五种方法
Jul 05 Python
python如何通过twisted搭建socket服务
Feb 03 Python
Pytorch mask_select 函数的用法详解
Feb 18 Python
python 已知三条边求三角形的角度案例
Apr 12 Python
PyCharm设置Ipython交互环境和宏快捷键进行数据分析图文详解
Apr 23 Python
在pytorch中动态调整优化器的学习率方式
Jun 24 Python
python Cartopy的基础使用详解
Nov 01 Python
scrapy在python爬虫中搭建出错的解决方法
Nov 22 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网站基础优化方法小结
2008/09/29 PHP
PHP中static关键字原理的学习研究分析
2011/07/18 PHP
PHP mb_convert_encoding文字编码的转换函数介绍
2011/11/10 PHP
PHP中文件缓存转内存缓存的方法
2011/12/06 PHP
使用PHP静态变量当缓存的方法
2013/11/13 PHP
php通过baihui网API实现读取word文档并展示
2015/06/22 PHP
PHP在线调试执行的实现方法(附demo源码)
2016/04/28 PHP
PHP将英文数字转换为阿拉伯数字实例讲解
2019/01/28 PHP
浅谈php的TS和NTS的区别
2019/03/13 PHP
JavaScript实现将数组中所有元素连接成一个字符串的方法
2015/04/06 Javascript
实例讲解jQuery EasyUI tree中state属性慎用
2016/04/01 Javascript
基于AngularJS实现iOS8自带的计算器
2016/09/12 Javascript
Vuex之理解state的用法实例
2017/04/19 Javascript
使用vue-cli创建项目的图文教程(新手入门篇)
2018/05/02 Javascript
从零搭一个自用的前端脚手架的方法步骤
2019/09/23 Javascript
详解Vue后台管理系统开发日常总结(组件PageHeader)
2019/11/01 Javascript
小程序按钮避免多次调用接口和点击方案实现(不用showLoading)
2020/04/15 Javascript
uniapp 仿微信的右边下拉选择弹出框的实现代码
2020/07/12 Javascript
[00:34]拔城逐梦,热血永恒!2020(秋)完美世界城市挑战赛报名开启
2020/10/09 DOTA
Django + Uwsgi + Nginx 实现生产环境部署的方法
2018/06/20 Python
python中dict字典的查询键值对 遍历 排序 创建 访问 更新 删除基础操作方法
2018/09/13 Python
python导入模块交叉引用的方法
2019/01/19 Python
详解用Python为直方图绘制拟合曲线的两种方法
2019/08/21 Python
python上下文管理的使用场景实例讲解
2021/03/03 Python
详解基于canvas的视频遮罩插件
2018/01/04 HTML / CSS
德国家具在线:Fashion For Home
2017/03/11 全球购物
函授毕业自我鉴定
2013/12/19 职场文书
三八节主持词
2014/03/17 职场文书
学习计划书怎么写
2014/09/15 职场文书
2014年统计工作总结
2014/11/21 职场文书
2015安全保卫工作总结
2015/04/25 职场文书
三方合作意向书范本
2015/05/09 职场文书
搭讪开场白台词大全
2015/05/28 职场文书
再见,2019我们不负使命;你好,2020我们砥砺前行
2020/01/03 职场文书
Nginx配置Https安全认证的实现
2021/05/26 Servers
css3应用示例:新增的选择器
2022/03/16 HTML / CSS