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表达式相关推荐

  1. python lambda表达式的使用方法(匿名函数)

    文章目录 lambda函数简介 示例1:将存有文件名的字符串列表,运用正则表达式方法提取文件名中的数字,按照数字大小将文件名字符串列表重新排序 示例2:将存有hsv颜色空间的颜色元组列表,转换成rgb ...

  2. Python lambda表达式用法

    python lambda表达式简单用法 lambda表达式简单用法 lambda是什么? lambda表达式在sort函数中的使用 内置函数 lambda是什么? 看个例子: g = lambda ...

  3. 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 ...

  4. Python lambda表达式与函数式编程

    Python学习笔记(十二):lambda表达式与函数式编程 原创  2013年07月22日 21:57:47 标签:

  5. python大于等于怎么表示_如何在rejectdb中应用python lambda表达式中的大于等于

    我在reinstdb表中有下面的json记录.在[{ "pid": 12, "sk": [ { "sid": 30, "et&qu ...

  6. python lambda表达式_Python中lambda表达式

    Python中lambda表达式 1.lambda的应⽤用场景 如果一个函数有一个返回值,并且只有一句代码,可以使用 lambda简化. 2. lambda语法 lambda 参数列列表 : 表达式 ...

  7. python -lambda表达式的用法

    匿名函数 lambda的意义: 利用lambda我们可以速写函数,不用去定义函数就可以直接使用 y = lambda x,z:5+9*x+8*z print(y(2,4)) 从例子中可以看到,lamb ...

  8. python Lambda 表达式

    来源:http://www.cnblogs.com/jydeng/p/4145188.html 一.lambda函数 1.lambda函数基础: lambda函数也叫匿名函数,即,函数没有具体的名称, ...

  9. python lambda表达式及用法_Python:lambda表达式和yield关键字理解与使用讲解

    一.lambda表达式 1.1.lambda表达式理解 lambda的主体是一个表达式,而不是一个代码块,仅仅能在lambda表达式中封装有限的逻辑进去.如果要通俗的理解lambda表达式,可以结合C ...

最新文章

  1. 一、javaSE (二十三)多线程
  2. 奇虎360将于18日在美摘牌 进程早于外界预期
  3. beego mysql session_关于go中beego/session的小总结
  4. 咖友推荐|我是窝窝酱,我来了,你在哪儿?
  5. java数据结构编程_Java数据结构编程
  6. nginx 和 uWISG 服务器之间如何配合工作的
  7. c++ 图的连通分量是什么_学习数据结构第五章:图(图的遍历操作)
  8. apicloud使用指南
  9. Linux下共享内存的查看和释放
  10. 多台电脑共享一套鼠标键盘的免费方法
  11. CSS3蒙版/遮罩、倒影
  12. C语言的声明的优先级规则
  13. oracle 11g 通过在线重定义方式修改表结构
  14. Java定时器quartz停止
  15. 拉勾数据分析岗数据分析报告
  16. Dagger2 知识梳理(3) 使用 dependencies 和 @SubComponent 完成依赖注入
  17. python最简单的爬取邮箱地址怎么写_用python60行代码写一个简单的笔趣阁爬虫!三分一章?...
  18. 移动开发的设计稿为什么大多数是750px?
  19. Meterpreter命令详解
  20. KMS激活报错0x8007000D

热门文章

  1. 来一场蛋白和小分子的风花雪月
  2. Mol. Biol. Evol. | 中科院动物所揭示石山叶猴适应喀斯特环境的遗传机制
  3. Big Sur bug汇总与解决:macOS Big Sur更新后你遇到了哪些问题?
  4. Audacity Mac版教程,使用Audacity编辑音频波形图的方法步骤
  5. pyqt5 捕获异常确保程序不退出_Python异常处理详解(基础篇十一)
  6. 使用 Python 解数学方程
  7. 1259:【例9.3】求最长不下降序列
  8. php5.4.45的php.ini文件
  9. centos7远程桌面端口_CentOS7启用远程桌面连接
  10. python中深拷贝和浅拷贝_**Python中的深拷贝和浅拷贝详解