首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

Python编程技巧 – Lambda函数

  • 25-03-02 14:02
  • 4591
  • 11199
blog.csdn.net

Python编程技巧 – Lambda函数

Python Programming Skills – Lambda Functions

By Jackson@ML
2023-11-25

在前文介绍过Python函数,一个函数用def关键字声明,不带或带有参数,并以冒号结束;函数块根据结果由解释器确定返回值动态类型。

为了引入lambda函数,先看下面代码,编写函数add(x, y) 进行两个数的加法运算并打印输出:

def add(x, y):
    return x + y
print("x + y = ", add(10, 3))
  • 1
  • 2
  • 3

执行结果如下图所示:
在这里插入图片描述
经常这样写函数,会不经意地发现,很多函数都只用一次,并且重复使用的概率很低;同时,每每涉及到函数,都得这么写一遍,体现的效率不是很高。

那么,问题来了:如果仅用一次,或者不经常用,函数该怎么变得简洁呢?
Lambda函数,将为我们解决这个问题。

本文简要介绍lambda函数及其表达式如何应用在计算和相关函数领域,以提高我们的工作效率的案例,希望对开发者和学习者有所帮助。

1. 一个简单的lambda函数

按照上述的传统函数预算法则,如果不需要再次调用它,那么视之为匿名函数,就可以使用lambda表达式来实现该函数,如下代码:

lmd = lambda x, y: x + y
print(lmd(10, 3))
  • 1
  • 2

执行结果如下图所示:
在这里插入图片描述
可以看到,函数本身只有一行语句,其中lambda表达式简明扼要地表达了函数传递了参数x, y, 函数返回值是x + y的和(即10 + 3)。

尽管该函数没有名称,但是它把返回值赋给了变量lmd,并由lmd打印输出结果:13。

2. 为什么使用lambda函数?

假如函数只需要使用一次,并且当您在另一个函数中将它们用作匿名函数时,可以更好地显示 lambda 的强大功能。
比如下方代码,你有一个函数,它接受一个参数传递,并且该参数将与一个未知数字相乘:

def myFunction(n):
    return lambda a : a * n
myDoubler = myFunction(2)
print(myDoubler(11))
  • 1
  • 2
  • 3
  • 4

myFunction函数传递了参数n,实际参数值为2(即倍数);紧接着,myDoubler函数作为变量被赋予了myFunction(2),并由lambda表达式计算,返回与实际参数11的乘积结果:22.
执行结果如下图所示:
在这里插入图片描述
同样,如果n = 3, 执行结果如下图所示:

在这里插入图片描述
如果我们想要通过myFunction来打造不同的函数myDoubler, myTripler,从而分别计算输出2倍、3倍于参数的结果,可以变为以下代码:

在这里插入图片描述

3. 小结

通过本文的示例,说明了Python语言提供了高效的lambda函数及其表达式。如果需要只使用一次,或者使代码看起来简洁,那么lambda函数将是一个不错的选择。

当然,普通Python函数的强大功能仍不容忽视,而在敏捷开发过程中,lambda函数在表达匿名函数方面,的确方便可行。

技术好文陆续推出,敬请关注。

喜欢就点赞哈! 您的认可,我的动力。?

相关阅读:

  1. Python编程技巧 - 使用字典(Dictionary)
  2. Python编程技巧 - 使用字符串(Strings)
  3. Python编程技巧 - 对象和类(Object and Class)
  4. Python编程技巧 - 使用列表(List)
  5. Python编程技巧 - 转换二进制、八进制和十六进制的函数
  6. Python编程技巧 - 函数入门
  7. 安装最新版Visual Studio Code来开发Python应用程序
  8. 安装2023最新版PyCharm来开发Python应用程序
  9. 2023最新版Python 3.12.0 安装使用指南
  10. 安装最新版IntelliJ IDEA来开发Java应用程序
  11. 安装最新版WebStorm来开发JavaScript应用程序
文章知识点与官方知识档案匹配,可进一步学习相关知识
Python入门技能树进阶语法lambda函数374449 人正在系统学习中
注:本文转载自blog.csdn.net的Jackson@ML的文章"https://jackson.blog.csdn.net/article/details/134618010"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2491) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top