文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python——lambda函数

2023-09-04 19:33

关注

lambda 表达式,又称匿名函数,常用来表示内部仅包含 1 行表达式的函数。如果一个函数的函数体仅有 1 行表达式,则该函数就可以用 lambda 表达式来代替。

name = lambda [list] : 表达式

其中,定义 lambda 表达式,必须使用 lambda 关键字;[list] 作为可选参数,等同于定义函数是指定的参数列表;value 为该表达式的名称。

该语法格式转换成普通函数的形式,如下所示:

def name(list):    return 表达式name(list)

显然,使用普通方法定义此函数,需要 3 行代码,而使用 lambda 表达式仅需 1 行。

举个例子,如果设计一个求 2 个数之和的函数,使用普通函数的方式,定义如下: 

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

可以这样理解 lambda 表达式,其就是简单函数(函数体仅是单行的表达式)的简写版本。相比函数,lambada 表达式具有以下 2 个优势:

  1. 对于单行函数,使用 lambda 表达式可以省去定义函数的过程,让代码更加简洁;

  2. 对于不需要多次复用的函数,使用 lambda 表达式可以在用完之后立即释放,提高程序执行的性能。

使用匿名函数

特性

以下实例说明匿名函数的以上三个特性:

a = 10f = lambda x: x * aprint(f)print(type(f))print(f(3))
 at ...>      # 这里的 ... 指得是运行代码时分配的地址30

常见用法

由于 lambda 语法是固定的,其本质上只有一种用法,那就是定义一个 lambda 函数。
在实际中,根据 lambda 函数使用场景的不同,可以将 lambda 函数的用法进行简单扩展

add=lambda x,y:x+yprint(add(3,4))
7
print(sum[1, 2, 3, 4, 5], 20)sum = lambda *args: Noneprint(sum[1, 2, 3, 4, 5], 20)
35None
# 计算 x 的平方def square(x):    return x ** 2# 一. 通过 map() 和 square() 计算列表各个元素的平方result = list(map(square, [1, 2, 3, 4, 5]))print('test_1:', result)# 匿名函数写法# 二. 通过 map() 和 lambda 计算列表各个元素的三次方result = list(map(lambda x: x ** 3, [1, 2, 3, 4, 5]))print('test_2:', result)# 三. 提供两个列表,将其相同索引位置的列表元素进行相加result = list(map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10]))print('test_3:', result)# 四. 列表长度不同时,相加后的结果列表长度为较小列表的长度result = list(map(lambda x, y: x + y, [1, 3, 5, 7, 9, 11, 13], [2, 4, 6, 8, 10]))print('test_4:', result)result = list(map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10, 12, 14]))print('test_5:', result)
test_1: [1, 4, 9, 16, 25]test_2: [1, 8, 27, 64, 125]test_3: [3, 7, 11, 15, 19]test_4: [3, 7, 11, 15, 19]test_5: [3, 7, 11, 15, 19]

 

来源地址:https://blog.csdn.net/qq_55858843/article/details/127789066

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯