Python 匿名函数


匿名函数,顾名思义,就是指一个没有名称的函数。

在 Python 中,常规函数使用 def 关键字定义,但匿名函数使用 lambda 关键字定义。正因如此,匿名函数也被称为 lambda 函数。

1

语法规则

相比常规函数,lambda 函数的语法会简单很多:

lambda argument(s): expression
  • lambda:定义 lambda 函数的关键字。

  • argument(s):函数的参数列表,参数之间用逗号(,)分割。

  • expression:被返回的表达式,且表达式只能有一个。

根据语法可知,由于 lambda 函数只能包含表达式,不能包含语句,因此 lambda 函数不能使用 return,因为 return 是一个语句。

注意:lamda 函数应尽量简短,不要试图加入太多东西,如果逻辑比较复杂,应定义一个常规的函数。

2

基本用法

以一个数字的平方为例,先来看常规函数是如何定义的:

>>> def square(x):
...     return x * x
... 
>>> 
>>> square(6)
36

若换作 lambda 函数的话,就是下面这样:

>>> square = lambda x: x * x
>>> 
>>> square
<function <lambda> at 0x7f9171608950>
>>> 
>>> square(6)
36

可以看到,这个函数没有名字,它返回了一个函数对象,该对象被分配给了变量 square,可以将其作为一个正常的函数来调用。

当然,也可以直接调用 lambda 函数,而无需将其分配给变量:

>>> (lambda x: x * x)(6)
36

但这样的可读性不是很好。

3

主要作用

lambda 函数有个优点,就是函数没有名字,所以不必担心函数名冲突。

此外,当需要一些小体量的一次性函数时,可以使用 lambda 函数。通常,它也被用作高阶函数(将其他函数作为参数的函数)的参数。

例如,在一个函数内部使用 lambda 函数:

>>> def pow(y):
...     return lambda x : x ** y
...
>>>

这个函数可用于求 x 的 y 次幂,来演示下如何使用:

>>> square = pow(2)  # 求平方
>>> cube = pow(3)    # 求立方
>>>
>>> square(6)
36
>>> cube(6)
216

这样以来,便可以用 pow() 函数定义多个 lambda 函数了,非常方便!

·END·
 

高效程序员

谈天 · 说地 · 侃代码 · 开车

长按识别二维码,解锁更多精彩内容

展开阅读全文

Python数据分析与挖掘

01-08
92讲视频课+16大项目实战+源码+¥800元课程礼包+讲师社群1V1答疑+社群闭门分享会=99元   为什么学习数据分析?       人工智能、大数据时代有什么技能是可以运用在各种行业的?数据分析就是。       从海量数据中获得别人看不见的信息,创业者可以通过数据分析来优化产品,营销人员可以通过数据分析改进营销策略,产品经理可以通过数据分析洞察用户习惯,金融从业者可以通过数据分析规避投资风险,程序员可以通过数据分析进一步挖掘出数据价值,它和编程一样,本质上也是一个工具,通过数据来对现实事物进行分析和识别的能力。不管你从事什么行业,掌握了数据分析能力,往往在其岗位上更有竞争力。    本课程共包含五大模块: 一、先导篇: 通过分析数据分析师的一天,让学员了解全面了解成为一个数据分析师的所有必修功法,对数据分析师不在迷惑。   二、基础篇: 围绕Python基础语法介绍、数据预处理、数据可视化以及数据分析与挖掘......这些核心技能模块展开,帮助你快速而全面的掌握和了解成为一个数据分析师的所有必修功法。   三、数据采集篇: 通过网络爬虫实战解决数据分析的必经之路:数据从何来的问题,讲解常见的爬虫套路并利用三大实战帮助学员扎实数据采集能力,避免没有数据可分析的尴尬。   四、分析工具篇: 讲解数据分析避不开的科学计算库Numpy、数据分析工具Pandas及常见可视化工具Matplotlib。   五、算法篇: 算法是数据分析的精华,课程精选10大算法,包括分类、聚类、预测3大类型,每个算法都从原理和案例两个角度学习,让你不仅能用起来,了解原理,还能知道为什么这么做。
©️2020 CSDN 皮肤主题: 技术黑板 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值