Python浅析匿名函数lambda的用法

作者:Flyme?awei 时间:2022-07-19 18:29:29 

lambda函数的定义   

lambda函数是Python中常用的内置函数,又称为匿名函数。和普通函数相比,它只有函数体,省略了def和return,使得结构看起来更精简。其基本调用语法如下:

lambda [var1 [,var2,…varn]]:expression

[var1 [,var2,…varn]]:形式参数,可以理解为入参,供表达式使用。

expression:函数表达式,其结果为lambda函数的返回值。

Lambda函数在Python中

lambda 函数是一个匿名函数(即,没有名称定义),它可以接受任意数量的参数,但与普通函数不同,它只计算并返回一个表达式

Python 中的 lambda 函数使用以下语法表达:

lambda 参数:表达式

lambda 函数包括三个元素:

  • 关键字 lambda:与普通函数中 def 类似

  • 参数:支持传递位置和关键字参数,与普通函数一样

  • 正文:处理定参数的表达式

需要注意的是,普通函数不同,这里不需要用括号将 lambda 函数的参数括起来,如果 lambda 函数有两个或更多参数,我们用逗号列出它们

我们使用 lambda 函数只计算一个短表达式(理想情况下,单行)并且只计算一次,这意味着我们以后不会再复用这个函数。通常来说我们会将 lambda 函数作为参数传递给高阶函数(接受其他函数作为参数的函数),例如 Python 内置函数,如 filter()、map() 或 reduce()等

匿名函数,顾名思义,没有名字的函数

我来看一下语法:

lambda [list]: 表达式

这里介绍一下参数

"""
[list]:表示参数列表, 
注意:参数与表达式之间需要冒号来区分 
表达式 :表达式方法非常多,表达形式也非常多 
返回值 :为表达式的结果value
"""

例如,上方的代码这里

lambda x:x % n > 0

x 为需要传入的参数,而 x % n > 0 为表达式,之间需要用冒号进行引用,计算的表达式结果为返回值这里举例说明:如果设计一个求 2 个数之和的函数,使用普通函数的方式,定义如下:

def add(x, y):
   return x + y
print(add(3, 4))

我们看到只有一行表达式,直接运算结果返回值,那这时我们如果使用匿名函数一行代码即可完成

add = lambda x, y: x + y
print(add)

这里我们将直接写出我们的结果,我们可以看到对于比较单行返回的函数,使用 lambda 表达式可以省去定义函数的过程,让代码更加简洁,针对不需要多次复用的函数,使用 lambda 表达式可以在用完之后立即释放,提高程序 执行的性能。而且还能配合其他的一些高阶函数配合使用

# -*- coding: utf-8 -*-
fun1 = lambda a, b: x + y
x = int(input('x='))
y = int(input('y='))
print('x+y=', fun1(x, y))
def add(a, b):
   print('add=', a + b)
add(x, y)
fun = lambda a, b: a ** 2
f = fun(2, 4)
print(type(fun))
print(f)

Python浅析匿名函数lambda的用法

来源:https://aweia.blog.csdn.net/article/details/125435739

标签:Python,lambda,匿名函数
0
投稿

猜你喜欢

  • Python eval()函数和ast.literal_eval()的区别你知道吗

    2022-06-26 14:37:55
  • 分享一个超好用的php header下载函数

    2023-09-03 21:31:43
  • Echarts图表移动端横屏进入退出的实现

    2024-05-11 09:06:45
  • 通过遮罩层实现浮层DIV登录的js代码

    2024-06-24 00:08:58
  • Laravel框架用户登陆身份验证实现方法详解

    2024-04-30 08:47:12
  • encode脚本和normal脚本混用的问题与解决方法

    2024-04-22 13:02:39
  • Python multiprocessing模块中的Pipe管道使用实例

    2023-08-18 10:01:31
  • 两个不太常用的 CSS Hack

    2008-06-27 12:49:00
  • Pytest单元测试框架生成HTML测试报告及优化的步骤

    2021-07-10 16:49:13
  • 解决python3读取Python2存储的pickle文件问题

    2023-03-18 14:20:30
  • Bootstrap风格的WPF样式

    2024-05-02 17:32:17
  • 利用Java正则表达式校验邮箱与手机号

    2023-07-03 15:14:54
  • Python中使用jpype调用Jar包中的实现方法

    2023-04-24 13:48:05
  • 利用pandas进行大文件计数处理的方法

    2021-05-20 02:36:55
  • MySQL Limit执行过程分析探索

    2024-01-14 05:44:31
  • Lost connection to MySQL server at 'reading authorization packet', system error: 0

    2024-01-20 19:06:26
  • css把超出的部分显示为省略号的方法兼容火狐

    2010-10-07 09:02:44
  • Msxml2.XMLHTTP Microsoft.XMLHTTP new XMLHttpRequest用法

    2010-03-30 09:43:00
  • python 通过SSHTunnelForwarder隧道连接redis的方法

    2021-03-08 12:58:41
  • 同时安装vs2005团队开发版和sql 2005企业版的方法(downmoon原作)

    2024-01-17 21:11:39
  • asp之家 网络编程 m.aspxhome.com