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 相关文章推荐
教你如何在Django 1.6中正确使用 Signal
Jun 22 Python
跟老齐学Python之用Python计算
Sep 12 Python
基于Python中单例模式的几种实现方式及优化详解
Jan 09 Python
解决使用pycharm提交代码时冲突之后文件丢失找回的方法
Aug 05 Python
python中break、continue 、exit() 、pass终止循环的区别详解
Jul 08 Python
keras 特征图可视化实例(中间层)
Jan 24 Python
python计算导数并绘图的实例
Feb 29 Python
Django 实现对已存在的model进行更改
Mar 28 Python
计算Python Numpy向量之间的欧氏距离实例
May 22 Python
在keras下实现多个模型的融合方式
May 23 Python
Python中SQLite如何使用
May 27 Python
python获取本周、上周、本月、上月及本季的时间代码实例
Sep 08 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
thinkphp3.0输出重复两次的解决方法
2014/12/19 PHP
php将图片文件转换成二进制输出的方法
2015/06/10 PHP
php使用ffmpeg获取视频信息并截图的实现方法
2016/05/03 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
2020/03/29 PHP
Javascript入门学习资料收集整理篇
2008/07/06 Javascript
JavaScript自定义方法实现trim()、Ltrim()、Rtrim()的功能
2013/11/03 Javascript
浅析jquery的js图表组件highcharts
2014/03/06 Javascript
javascript中的事件代理初探
2014/03/08 Javascript
jQuery中的jQuery()方法用法分析
2014/12/27 Javascript
网页禁用右键菜单和鼠标拖动选择方法小结
2015/02/25 Javascript
JavaScript编写推箱子游戏
2015/07/07 Javascript
js实现prototype扩展的方法(字符串,日期,数组扩展)
2016/01/14 Javascript
AngularJS入门教程之Scope(作用域)
2016/07/27 Javascript
JS简单验证上传文件类型的方法
2017/04/17 Javascript
vue.js提交按钮时进行简单的if判断表达式详解
2018/08/08 Javascript
element 中 el-menu 组件的无限极循环思路代码详解
2020/04/26 Javascript
实例讲解Python设计模式编程之工厂方法模式的使用
2016/03/02 Python
python绘制条形图方法代码详解
2017/12/19 Python
Python简单实现两个任意字符串乘积的方法示例
2018/04/12 Python
Python 二叉树的层序建立与三种遍历实现详解
2019/07/29 Python
python数据处理之如何选取csv文件中某几行的数据
2019/09/02 Python
Python 静态方法和类方法实例分析
2019/11/21 Python
python 循环数据赋值实例
2019/12/02 Python
python爬虫库scrapy简单使用实例详解
2020/02/10 Python
HTML5中5个简单实用的API(第二篇,含全屏、可见性、拍照、预加载、电池状态)
2014/05/07 HTML / CSS
匈牙利最大的健身制造商和销售商:inSPORTline
2018/10/30 全球购物
外语专业毕业生自我评价分享
2013/10/05 职场文书
编辑硕士自荐信范文
2013/11/27 职场文书
会议邀请书范文
2014/02/02 职场文书
医院总经理岗位职责
2014/02/04 职场文书
成绩单公证书
2014/04/10 职场文书
应届毕业生自荐信
2014/05/28 职场文书
酒后驾车标语
2014/06/30 职场文书
先进集体申报材料
2014/12/25 职场文书
新员工入职欢迎词
2015/01/23 职场文书
高中升旗仪式主持词
2015/07/03 职场文书