Python编程技巧 – Lambda函数

news2024/12/22 23:14:01

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.coloradmin.cn/o/1251882.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux】:信号的产生

信号 一.前台进程和后台进程1.前台进程2。后台进程3.总结 二.自定义信号动作接口三.信号的产生1.键盘组合键2.kill信号进程pid3.系统调用1.kill函数2.raise函数3.abort函数 四.异常五.软件条件六.通过终端按键产生信号 一.前台进程和后台进程 1.前台进程 一个简单的代码演示 …

【Spring集成MyBatis】MyBatis注解开发

文章目录 1. MyBatis的常用注解2. 基于注解的MyBatis增删改查增删改查完整代码加载映射关系测试代码 3. MyBatis的注解实现复杂映射开发一对一操作的实现一对一操作实现的第二种方式一对多操作的实现多对多操作实现 1. MyBatis的常用注解 2. 基于注解的MyBatis增删改查 使用注…

Leetcode—83.删除排序链表中的重复元素【简单】

2023每日刷题(四十) Leetcode—83.删除排序链表中的重复元素 实现代码 /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/ struct ListNode* deleteDuplicates(struct ListNode* head) {i…

张弛语言课,战争电影配音声音细致声音来复原战场

为战争片进行声音配音是一项挑战性的工作,它要求精确再现战场的紧张感和复杂情绪。配音人员和声音设计团队必须创造出真实的战争声景,从战斗的轰鸣声到士兵的呐喊,这些声音元素都需细致打造,以传递战争的惨烈、英勇和人性的复杂。…

工作中死循环害死人

背景:研发的一段代码,循环一直没有跳出,导致其他依赖逻辑有问题,生产事故导致9万左右数据不正常。 这里while(true)真的不要轻易用 ,后来研发改动限制mysql的id切分步长,控制不会有数…

2017年2月16日 Go生态洞察:Go 1.8版本的革新

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

移动机器人路径规划(七)--- 基于MDP的路径规划MDP-Based Planning

目录 1 什么是MDP-Based Planning 2 worst-case analysis for nondeterministic model 3 Expected Cost Planning 4 Real Time Dynamic Programming(RTDP) 1 什么是MDP-Based Planning 之前我们从起点到终点存在很多可执行路径,我们可以…

可验证随机函数(VRF)

文章目录 一、背景以及场景共识发展第一代 POW “以力取胜”第二代 POS/DPOS “民主投票”第三代 VRF “运气抽签” 二、可验证随机函数(VRF)快速开始1. VRF是什么?2. MD5 hash函数和VRF(Verifiable Random Function)区别3. VRF-…

日历视图,轻松解决时间管理难题丨三叠云

日历组件 路径 仪表盘设计 >> 组件 功能简介 仪表盘新增「日历」组件。日历组件是以日历图的形式去呈现数据的一种方式,支持【列表模式】和【面板模式】。 【列表模式】: 通过日历方式筛选数据,数据将会以列表的方式呈现。 【面…

视频图片提取秘籍:从指定时长中提取想要的视频封面

在如今的内容丰富的互联网世界中,视频已经成为大家获取信息、娱乐和交流的重要方式之一。而视频的封面或图片,作为视频内容的“名片”,往往决定了观众是否愿意点击和进一步了解视频内容。视频图片提取,通常也被称为视频封面提取&a…

Python实现一箭穿心

文章目录 🎄效果🏳️‍🌈Turtle模块🌹代码🌺代码讲解 🎄效果 🏳️‍🌈Turtle模块 Turtle是一个绘图工具,是Python标准库中的一个模块。它提供了一种简单而直观的方式来创…

【教学类-06-10】20231125(55格版)X-Y之间“乘法*题”(以1-9乘法口诀表为例)(0-9乘法口诀表 最大81)

图片展示 (随机打乱排序) 正序 背景需求: 2023年11月24日,准备了一些题目,分别给大4班孩子介绍“5以内加法、5以内减法、5以内加减混合”““10以内加法、10以内减法、10以内加减混合”“”20以内加减混合“七款学具…

Datax安装部署及读取MYSQL写入HDFS

一.DataX简介 1.DataX概述 DataX 是阿里巴巴开源的一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。 源码地址:https://github.com/alibaba/Data…

openpnp - 丝杠安装调整的总结

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

【刷题宝典NO.5】

有效的括号 https://leetcode.cn/problems/valid-parentheses/ 给定一个只包括 (,),{,},[,] 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。左括号必…

数仓中数据清洗的方法

在数据采集的过程中,需要从不同渠道获取数据并汇集在数仓中,采集的原始数据首先需要进行解析,然后对不准确、不完整、不合理、格式、字符等不规范数据进行过滤清洗,清洗过的数据才能更加符合需求,从而使后续的数据分析…

5、LED流水灯

LED流水灯 思路&#xff1a;每次LED灯熄灭后&#xff0c;下一个LED灯亮 #include <REGX52.H> #include <INTRINS.H>void Delay500ms() //12.000MHz {unsigned char i, j, k;_nop_();i 4;j 205;k 187;do{do{while (--k);} while (--j);} while (--i); }void m…

3.读取字符串【2023.11.25】

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

brat文本标注工具——安装

目录 一、Linux系统安装 1. centOS系统 2. Ubuntu系统 3. macOS系统 4.说明 二、Google Chrome安装 1. 打开命令行&#xff0c;切换到管理者权限 2. 安装依赖 3. 下载Google浏览器的安装包 4. 安装Google Chrome 三、yum更新 四、Apache安装 安装Apache 启动Apac…