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))
当然,也可以如下:
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+breturn func
y1 = get_y(1,1)
y1(1) # 结果为2
只不过这种方式显得有点啰嗦。
那么是不是任何情况下lambda函数都要比常规函数更清晰明了呢?
肯定不是。
Python之禅中有这么一句话:Explicit is better than implicit(明了胜于晦涩),就是说那种方式更清晰就用哪一种方式,不要盲目的都使用lambda表达式。
python -- lambda表达式相关推荐
- python lambda表达式的使用方法(匿名函数)
文章目录 lambda函数简介 示例1:将存有文件名的字符串列表,运用正则表达式方法提取文件名中的数字,按照数字大小将文件名字符串列表重新排序 示例2:将存有hsv颜色空间的颜色元组列表,转换成rgb ...
- Python lambda表达式用法
python lambda表达式简单用法 lambda表达式简单用法 lambda是什么? lambda表达式在sort函数中的使用 内置函数 lambda是什么? 看个例子: g = lambda ...
- LeetCode 905 Sort Array By Parity--Java stream,Python lambda表达式一行 解法
题目地址:Sort Array By Parity - LeetCode Given an array A of non-negative integers, return an array cons ...
- Python lambda表达式与函数式编程
Python学习笔记(十二):lambda表达式与函数式编程 原创 2013年07月22日 21:57:47 标签:
- python大于等于怎么表示_如何在rejectdb中应用python lambda表达式中的大于等于
我在reinstdb表中有下面的json记录.在[{ "pid": 12, "sk": [ { "sid": 30, "et&qu ...
- python lambda表达式_Python中lambda表达式
Python中lambda表达式 1.lambda的应⽤用场景 如果一个函数有一个返回值,并且只有一句代码,可以使用 lambda简化. 2. lambda语法 lambda 参数列列表 : 表达式 ...
- python -lambda表达式的用法
匿名函数 lambda的意义: 利用lambda我们可以速写函数,不用去定义函数就可以直接使用 y = lambda x,z:5+9*x+8*z print(y(2,4)) 从例子中可以看到,lamb ...
- python Lambda 表达式
来源:http://www.cnblogs.com/jydeng/p/4145188.html 一.lambda函数 1.lambda函数基础: lambda函数也叫匿名函数,即,函数没有具体的名称, ...
- python lambda表达式及用法_Python:lambda表达式和yield关键字理解与使用讲解
一.lambda表达式 1.1.lambda表达式理解 lambda的主体是一个表达式,而不是一个代码块,仅仅能在lambda表达式中封装有限的逻辑进去.如果要通俗的理解lambda表达式,可以结合C ...
最新文章
- 一、javaSE (二十三)多线程
- 奇虎360将于18日在美摘牌 进程早于外界预期
- beego mysql session_关于go中beego/session的小总结
- 咖友推荐|我是窝窝酱,我来了,你在哪儿?
- java数据结构编程_Java数据结构编程
- nginx 和 uWISG 服务器之间如何配合工作的
- c++ 图的连通分量是什么_学习数据结构第五章:图(图的遍历操作)
- apicloud使用指南
- Linux下共享内存的查看和释放
- 多台电脑共享一套鼠标键盘的免费方法
- CSS3蒙版/遮罩、倒影
- C语言的声明的优先级规则
- oracle 11g 通过在线重定义方式修改表结构
- Java定时器quartz停止
- 拉勾数据分析岗数据分析报告
- Dagger2 知识梳理(3) 使用 dependencies 和 @SubComponent 完成依赖注入
- python最简单的爬取邮箱地址怎么写_用python60行代码写一个简单的笔趣阁爬虫!三分一章?...
- 移动开发的设计稿为什么大多数是750px?
- Meterpreter命令详解
- KMS激活报错0x8007000D
热门文章
- 来一场蛋白和小分子的风花雪月
- Mol. Biol. Evol. | 中科院动物所揭示石山叶猴适应喀斯特环境的遗传机制
- Big Sur bug汇总与解决:macOS Big Sur更新后你遇到了哪些问题?
- Audacity Mac版教程,使用Audacity编辑音频波形图的方法步骤
- pyqt5 捕获异常确保程序不退出_Python异常处理详解(基础篇十一)
- 使用 Python 解数学方程
- 1259:【例9.3】求最长不下降序列
- php5.4.45的php.ini文件
- centos7远程桌面端口_CentOS7启用远程桌面连接
- python中深拷贝和浅拷贝_**Python中的深拷贝和浅拷贝详解