Python编程技巧 – Lambda函数

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))

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

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

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

1. 一个简单的lambda函数

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

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

执行结果如下图所示:
在这里插入图片描述
可以看到,函数本身只有一行语句,其中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))

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应用程序

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/188002.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

计数问题+约瑟夫问题(map)

目录 一、计数问题 二、约瑟夫问题 一、计数问题 #include<iostream> #include<map> using namespace std; int main() {int n,x;cin>>n>>x;map<int,int>m;for(int i1;i<n;i){if(i>1 && i<10){m[i];}else{int temp i;while (…

MYSQL基础知识之【添加数据,查询数据】

文章目录 前言MySQL 插入数据通过命令提示窗口插入数据使用PHP脚本插入数据 MySQL 查询数据通过命令提示符获取数据使用PHP脚本来获取数据内存释放 后言 前言 hello world欢迎来到前端的新世界 &#x1f61c;当前文章系列专栏&#xff1a;Mysql &#x1f431;‍&#x1f453;博…

【Jenkins】jenkins发送邮件报错:Not sent to the following valid addresses:

jenkins报错未能发送邮件到指定邮箱 注意&#xff1a;这是在系统配置中修改 在系统配置》邮件通知中添加配置信息 注意&#xff1a;这个是在项目的配置下修改 配置完成后&#xff0c;重新执行发送邮件成功&#xff01;&#xff01;&#xff01;

Python实现一箭穿心

文章目录 &#x1f384;效果&#x1f3f3;️‍&#x1f308;Turtle模块&#x1f339;代码&#x1f33a;代码讲解 &#x1f384;效果 &#x1f3f3;️‍&#x1f308;Turtle模块 Turtle是一个绘图工具&#xff0c;是Python标准库中的一个模块。它提供了一种简单而直观的方式来创…

在JVM中 判定哪些对象是垃圾?

目录 垃圾的条件 1、引用计数法 2、可达性分析 3、强引用 4、软引用 5、弱引用 6、虚引用 判断垃圾的条件 在Java虚拟机&#xff08;JVM&#xff09;中&#xff0c;垃圾收集器负责管理内存&#xff0c;其中的垃圾收集算法用于确定哪些对象是垃圾&#xff0c;可以被回收…

Linux的基本指令(二)

目录 前言 学前补充 touch指令 mkdir指令 rmdir指令 rm指令 通配符* man指令 cp指令 mv指令(重要) 补充内容&#xff1a; 1、如何快速在Linux中写出代码 2、如何看待如此多的Linux指令 cat指令 前言 关于Linux的基本指令我们会分三到四篇文章进行分析&#xff0c…

2.前端--HTML标签1【2023.11.25】

1.基本语法规范 HTML 标签是由尖括号包围的关键词&#xff0c;例如 <html>。HTML 标签通常是成对出现的&#xff0c;例如 和 &#xff0c;我们称为双标签。有些特殊的标签必须是单个标签&#xff08;极少情况&#xff09;&#xff0c;例如 <br />我们称为单标签。 …

持续增长的背后,艾比森用泛微-千里聆RPA机器人为业务加速

&#xff08;艾比森全球总部&#xff09; 艾比森集团始创于2001年&#xff0c;是全球知名的至真LED显示应用与服务提供商。目前旗下设有深圳总部&#xff0c;艾比森东江智造中心&#xff0c;以及艾比森美国、德国、日本、迪拜、俄罗斯、墨西哥、巴西、中国香港等18家海内外公司…

如何打造“面向体验”的音视频能力——对话火山引擎王悦

编者按&#xff1a;随着全行业视频化的演进&#xff0c;我们置身于一个充满创新与变革的时代。在这个数字化的浪潮中&#xff0c;视频已经不再只是传递信息的媒介&#xff0c;更是重塑了我们的交互方式和体验感知。作为字节跳动的“能力溢出”&#xff0c;火山引擎正在飞速奔跑…

openpnp - 丝杠安装调整的总结

文章目录 openpnp - 丝杠安装调整的总结概述笔记发现的问题 - X轴有回差发现的问题 - 丝杠两边的轴承座中心有高差(不同轴)备注END openpnp - 丝杠安装调整的总结 概述 设备定制回来后, 丝杠没敢动(开始是小白, 也没发现丝杠的相关问题. 因为看到同学自己安装丝杠那么痛苦, 最…

P12 C++静态关键字static

目录 01 前言 02 静态变量static 03 extern关键字 04 静态函数 最后的话 01 前言 static 关键字在 C 中有两个意思&#xff0c;这个取决于上下文。 第一种情况是在类或结构体外部使用 static 关键字&#xff0c;另一种是在类或者结构体内部使用 static。 类外面的 static…

【DP】mobiusp正在创作乐曲

输入样例1&#xff1a; 5 2 1 7 7 1 3 输出样例1&#xff1a; 2 输入样例2&#xff1a; 10 3 2 5 6 4 4 5 7 3 5 6 输出样例2&#xff1a; 1 #include<iostream> #include<cstring> #include<algorithm> #include<vector> using namespace std; typede…

jpom学习

jpom学习 整理jpom 一键安装 部署会需要 mvn跟jdk环境 # 安装服务端和 jdk、maven 环境 yum install -y wget && \ wget -O install.sh https://jpom.top/docs/install.sh && \ bash install.sh Server jdkmvndocker安装 安装docker挂载方式安装 docker …

【Docker】Docker 仓库管理和Docker Dockerfile

作者简介&#xff1a; 辭七七&#xff0c;目前大二&#xff0c;正在学习C/C&#xff0c;Java&#xff0c;Python等 作者主页&#xff1a; 七七的个人主页 文章收录专栏&#xff1a; 七七的闲谈 欢迎大家点赞 &#x1f44d; 收藏 ⭐ 加关注哦&#xff01;&#x1f496;&#x1f…

php订单发起退款(余额和微信支付)

index.html <a class="btn btn-danger btn-change btn-tuikuan btn-disabled" href="javascript:;"><i class="fa fa-tuikuan"></i> 订单退款</a>-->order.js // 为表格绑定事件Table.api.bindevent(table);//退款…

基于指数分布算法优化概率神经网络PNN的分类预测 - 附代码

基于指数分布算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于指数分布算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于指数分布优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&#xff1a;针对PNN神…

【docker】docker安装与优化

目录 一、安装Docker 1、关闭防火墙 2、安装依赖包 3、设置阿里云镜像源 4、安装Docker-CE社区版并设置为开机自启动 5、查看Docker信息 二、设置镜像加速 1、申请加速地址 2、实现加速操作 三、网络优化 1、如何网络优化 2、具体操作 四、docker-server端配置文件…

3.读取字符串【2023.11.25】

1.问题描述 请使用 input 函数读取一串字符串&#xff0c;然后将其输出。 2.解决思路 输入一行字符串。 将读入的变量输出。 3.代码实现 strinput("请输入一个字符串") print(str)4.运行结果

Word打印模板,打印效果更出众丨三叠云

Word打印模板 路径 表单设置 >> 打印设置 功能简介 新增「Word打印模板」(beta版)。 Word 打印模板是指&#xff0c;在 Word 文档的基础上插入表单中的字段代码&#xff0c;打印时即可根据 Word 文档的格式&#xff0c;对表单数据进行个性化打印。 Word 打印模板能…

knime 中没有column expressions,怎么下载

knime 中没有column expressions&#xff0c;怎么下载 1、打开view&#xff0c;然后找到knime hub&#xff0c;column expression 2、往里面拖动&#xff0c;就可以安装了 3、然后会出现重启&#xff0c;搜索就可以出现啦