山地人

Python 匿名函数/Lambda

山地人
山地人
2021-07-02

什么是匿名函数

对于普通函数来说,每个函数都有一个函数名,而匿名函数是没有函数名称的,因此得名匿名函数

匿名函数的语法

lambda 参数: 表达式
  • lambda每个匿名(lambda)表达式都使用lambda关键词开头,类似每个函数用def开头。
  • 参数:匿名(lambda)表达式可以有零个到多个参数,参数之间用,隔开。如果没有参数这个部分可以省略
  • : 参数位置后面要有一个:,不管是否定义参数,后面的这个冒号不能省略。
  • 表达式:匿名(lambda)表达式只能写一句表达式语句。

匿名(lambda)表达式的例子

不带参数匿名(lambda)表达式

为了让匿名(lambda)表达式后续能否被调用到,这里把这个匿名(lambda)表达式赋值给了sayHi变量。 后面可以通过sayHi()调用这个表达式。

带参数匿名(lambda)表达式

sayHi支持一个name参数。

定义一个支持两个参数的匿名求和函数

让匿名求和表达式返回求和结果,在匿名表达式中返回结果不需要写return关键字。

为何要用匿名函数

对于有些业务场景,我们需要一些简短的功能函数来处理一些问题。这是定义函数的成本相对较高不够轻量,那么使用匿名函数就是一个非常轻量的解决方案。

匿名函数的使用场景

使用匿名函数可以完成一些快捷灵活的操作。

利用匿名函数,快速计算平均分。

利用匿名函数,快速筛选数据。

代码分析:

  • filter是一个过滤函数,接收两个参数,第一个参数是一个lambda表达式用于设置过滤条件,第二个参数是要过滤的列表scores
  • 经过filter过滤后,会生成一个filter对象,所以使用list函数将其转换成一个列表
  • 最后输出这个经过过滤的列表就拿到了所有成绩大于90分的一个集合。

至此,本篇教程也到了该和你说再见的时候了,我们下期再见。

学完本篇互动教程,如果你觉得体验不错,可以把网页链接发送给你的小伙伴,让他/她也来感受一下。当然,你也可以继续看看网站上其他的的互动教程,希望`idev365`能够给你带来收获。

学习教程的过程中碰到了问题,或者对idev365有什么改进意见和想法,欢迎加入idev365微信内测群,和山地人交流你的想法。