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中操作字典之fromkeys()方法的使用
May 21 Python
Python实现字典依据value排序
Feb 24 Python
python获取多线程及子线程的返回值
Nov 15 Python
tensorflow 输出权重到csv或txt的实例
Jun 14 Python
Python3 pip3 list 出现 DEPRECATION 警告的解决方法
Feb 16 Python
Scrapy-Redis结合POST请求获取数据的方法示例
May 07 Python
Pandas之Fillna填充缺失数据的方法
Jun 25 Python
对Python生成器、装饰器、递归的使用详解
Jul 19 Python
pycharm修改file type方式
Nov 19 Python
使用Python的datetime库处理时间(RPA流程)
Nov 24 Python
如何基于python3和Vue实现AES数据加密
Mar 27 Python
python多进程下的生产者和消费者模型
May 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
Thinkphp的volist标签嵌套循环使用教程
2014/07/08 PHP
PHP脚本监控Nginx 502错误并自动重启php-fpm
2015/05/13 PHP
php 判断过去离现在几年的函数(实例代码)
2016/11/15 PHP
PHP开发中解决并发问题的几种实现方法分析
2017/11/13 PHP
Jquery中dialog属性小记
2010/09/03 Javascript
解析John Resig Simple JavaScript Inheritance代码
2012/12/03 Javascript
Js base64 加密解密介绍
2013/10/11 Javascript
原生js获取宽高与jquery获取宽高的方法关系对比
2014/04/04 Javascript
angularJS中$apply()方法详解
2015/01/07 Javascript
JavaScript常用的返回,自动跳转,刷新,关闭语句汇总
2015/01/13 Javascript
Jquery幻灯片特效代码分享--打开页面随机选择切换方式(3)
2015/08/15 Javascript
jquery实现左右滑动菜单效果代码
2015/08/27 Javascript
基于javascript代码检测访问网页的浏览器呈现引擎、平台、Windows操作系统、移动设备和游戏系统
2015/12/03 Javascript
javascript弹出窗口中增加确定取消按钮
2016/06/24 Javascript
Bootstrap Table使用整理(五)之分页组合查询
2017/06/09 Javascript
详解angular路由高亮之RouterLinkActive
2018/04/28 Javascript
vue动态删除从数据库倒入列表的某一条方法
2018/09/29 Javascript
用Cordova打包Vue项目的方法步骤
2019/02/02 Javascript
Angular7.2.7路由使用初体验
2019/03/01 Javascript
vue实现配置全局访问路径头(axios)
2019/11/01 Javascript
Django静态资源URL STATIC_ROOT的配置方法
2014/11/08 Python
Python中__repr__和__str__区别详解
2019/11/07 Python
pycharm导入源码的具体步骤
2020/08/04 Python
Python datetime 如何处理时区信息
2020/09/02 Python
python list等分并从等分的子集中随机选取一个数
2020/11/16 Python
html5 视频播放解决方案
2016/11/06 HTML / CSS
教学实验楼管理制度
2014/02/01 职场文书
节水倡议书范文
2014/04/15 职场文书
采购部长岗位职责
2014/06/13 职场文书
社区党的群众路线教育实践活动总结材料
2014/10/31 职场文书
2015会计试用期工作总结
2014/12/12 职场文书
2015年禁毒宣传活动总结
2015/03/25 职场文书
发票退票证明
2015/06/24 职场文书
Mysql实现主从配置和多主多从配置
2021/06/02 MySQL
在HTML中引入CSS的几种方式介绍
2021/12/06 HTML / CSS
Python使用PyYAML库读写yaml文件的方法
2022/04/06 Python