当前位置: 首页 > news >正文

Python基础教程(九):Lambda 函数

💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快!
💝💝💝如有需要请大家订阅我的专栏【Python系列】哟!我会定期更新相关系列的文章
💝💝💝关注!关注!!请关注!!!请大家关注下博主,您的支持是我不断创作的最大动力!!!

文章目录

  • Python Lambda 函数:简练与功能性的典范
    • 一、Lambda 函数基础
      • 1.1 什么是 Lambda 函数?
      • 1.2 Lambda 函数的语法
      • 1.3 Lambda 函数示例
    • 二、Lambda 函数的应用场景
      • 2.1 作为函数参数
        • 示例:使用 `map()` 和 `lambda` 函数
        • 示例:使用 `filter()` 和 `lambda` 函数
      • 2.2 在列表推导式中使用
    • 三、Lambda 函数的限制与最佳实践
    • 四、实战案例:Lambda 函数在数据分析中的应用
    • 五、总结

Python Lambda 函数:简练与功能性的典范

在 Python 编程语言中,lambda 函数是一种简洁且功能强大的特性,允许你快速定义单行的匿名函数。尽管其名字来源于 Lambda 演算,但在 Python 中的使用却更为广泛和灵活。本文将深入探讨 lambda 函数的基本概念、语法、使用场景,并通过实例来展示其在实际编程中的应用。

一、Lambda 函数基础

1.1 什么是 Lambda 函数?

lambda 函数是一种简化版的函数定义方式,它不需要像常规函数那样使用 def 关键字,而是直接在一行内定义并返回一个函数对象。lambda 函数通常用于那些只需要临时使用的小型函数,或者作为其他函数的参数。

1.2 Lambda 函数的语法

lambda 函数的基本语法如下:

lambda arguments: expression

这里的 arguments 可以是任意数量的参数(包括无参数),expression 则是使用这些参数进行计算的表达式。注意,lambda 函数只能包含一个表达式,不能包含复杂的语句块。

1.3 Lambda 函数示例

一个简单的 lambda 函数定义,用于计算两个数的和:

add = lambda x, y: x + y
print(add(5, 3))  # 输出 8

二、Lambda 函数的应用场景

lambda 函数在 Python 中的用途非常广泛,尤其适用于需要短小精悍函数的场合。下面是一些常见的应用场景:

2.1 作为函数参数

lambda 函数经常作为高阶函数(如 map(), filter(), sorted() 等)的参数使用,这是因为它们提供了定义简单操作的便捷方式。

示例:使用 map()lambda 函数
numbers = [1, 2, 3, 4, 5]
squared = map(lambda x: x**2, numbers)
print(list(squared))  # 输出 [1, 4, 9, 16, 25]
示例:使用 filter()lambda 函数
numbers = [1, 2, 3, 4, 5]
even_numbers = filter(lambda x: x % 2 == 0, numbers)
print(list(even_numbers))  # 输出 [2, 4]

2.2 在列表推导式中使用

虽然 lambda 函数主要设计用于函数式编程风格,但也可以巧妙地在列表推导式中使用,尤其是在需要动态生成函数或条件判断的情况下。

numbers = [1, 2, 3, 4, 5]
even_or_odd = ['Even' if (lambda x: x % 2 == 0)(num) else 'Odd' for num in numbers]
print(even_or_odd)  # 输出 ['Odd', 'Even', 'Odd', 'Even', 'Odd']

三、Lambda 函数的限制与最佳实践

虽然 lambda 函数提供了简洁性,但也有一些限制和注意事项:

  • 可读性:过度使用 lambda 函数可能会降低代码的可读性和可维护性,尤其是当函数逻辑较为复杂时。
  • 功能限制lambda 函数仅限于单个表达式,这意味着你不能在其中使用复杂的语句或控制流。

最佳实践是,将 lambda 函数用于简单的、一次性的计算任务,而对于更复杂的功能,应该使用传统的 def 定义函数。

四、实战案例:Lambda 函数在数据分析中的应用

在数据分析领域,lambda 函数经常用于数据清洗和转换任务。例如,在 Pandas 数据分析库中,lambda 函数可以用来对 DataFrame 的列进行操作。

import pandas as pddata = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}
df = pd.DataFrame(data)# 使用 lambda 函数将年龄增加 5 岁
df['Age'] = df['Age'].apply(lambda x: x + 5)
print(df)

五、总结

lambda 函数是 Python 编程中的一个强大工具,它提供了定义简洁、一次性函数的能力。通过理解 lambda 函数的语法和应用场景,你可以在日常编程中更加高效地利用这一特性。然而,重要的是要记住,lambda 函数的使用应当适度,避免在代码中过度使用,以免影响代码的清晰度和可读性。

在后续的学习和项目中,不妨尝试将 lambda 函数融入你的代码中,特别是在处理数据或实现函数式编程风格时,你会发现它能带来意想不到的便利和效率提升。


喜欢博主的同学,请给博主一丢丢打赏吧↓↓↓您的支持是我不断创作的最大动力哟!感谢您的支持哦😘😘😘
打赏下吧

💝💝💝如有需要请大家订阅我的专栏【Python系列】哟!我会定期更新相关系列的文章
💝💝💝关注!关注!!请关注!!!请大家关注下博主,您的支持是我不断创作的最大动力!!!

python相关文章索引文章链接
Python基础语法(一):标识符与保留字部分Python基础语法(一):标识符与保留字部分
Python基础语法(二):数据类型Python基础语法(二):数据类型
Python基础语法(三):运算符Python基础语法(三):运算符
Python基础语法(四):条件控制Python基础语法(四):条件控制
Python基础语法(五):循环语句Python基础语法(五):循环语句
Python基础语法(六):推导式编程Python基础语法(六):推导式编程
Python基础教程(七):函数编程-从基础到进阶Python基础教程(七):函数编程-从基础到进阶
Python基础教程(八):迭代器与生成器编程Python基础教程(八):迭代器与生成器编程

❤️❤️❤️觉得有用的话点个赞 👍🏻 呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄
💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍
🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

相关文章:

Python基础教程(九):Lambda 函数

💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快! 💝&#x1f49…...

docker从入门到精通

一、Docker基本命令 1. Docker的常用命令 帮助命令 docker version # docker版本信息 docker info # 系统级别的信息,包括镜像和容器的数量 docker 命令 --help 帮助文档 镜像命令 docker images 查看所有本地主机上的镜像 [rootiZ2zeg4ytp0whqtmxbsqiiZ…...

介绍工厂模式

简单工程 public class SingleFactoryTest {public static void main(String[] args) {SingleFactory factory new SingleFactory();Product productA factory.getObject("1");productA.method();Product productB factory.getObject("2");productB.me…...

大数据领域的workload是什么意思?

什么是workload? 在大数据领域,"workload"指的是需要处理的数据集和对其执行的操作的组合。它描述了大数据系统需要执行的任务的类型和规模。 我们可以从以下几个维度来理解大数据领域的 workload: 数据的特征: 数据量 需要处…...

引入别人的安卓项目报错

buildscript { repositories { google() jcenter() } dependencies { classpath com.android.tools.build:gradle:4.1.0 // 使用最新版本的插件 } } allprojects { repositories { google() jcenter() } } 在…...

Python Excel 指定内容修改

需求描述 在处理Excel 自动化时,财务部门经常有一个繁琐的场景,需要读取分发的Excel文件内容复制到汇总Excel文件对应的单元格内,如下图所示: 这种需求可以延申为,财务同事制作一个模板,将模板发送给各员工,财务同事需收取邮件将员工填写的excel文件下载到本机,再类似…...

【力扣高频题】003.无重复字符的最长子串

前段时间和小米的某面试官聊天。因为我一直在做 算法文章 的更新,就多聊了几句算法方面的知识。 并且在聊天过程中获得了一个“重要情报”:只要他来面试,基本上每次的算法题,都会去考察关于 子串和子序列 的问题。 的确&#xf…...

redis03 补充 事件

1.文件事件...

绿联Nas docker 中 redis 老访问失败的排查

部署了一些服务,老隔3-5 天其他服务就联不上 redis 了,未确定具体原因,只记录观察到的现象 宿主机访问 只有 ipv6 绑定了,ipv4 绑定挂掉了 其他容器访问 也无法访问成功 当重启容器后: 一切又恢复正常。 可能的解…...

Linux入门学习(2)

1.相关复习新的指令学习 (1)我们需要自己创建一个用户,这个用户前期可以是一个root用户,后期使用创建的普通用户 (2)文件等于文件内容加上文件属性,对于文件的操作就包括对于文件内容的操作和文件属性&…...

Spring boot开启跨域配置

Spring boot开启跨域配置 背景 跨域(Cross-Origin)是指在互联网上的一个域下的文档或脚本尝试请求另一个域下的资源时,域名、协议或端口不同的这种情况。具体来说,如果一个网页试图通过脚本(如JavaScript&#xff09…...

java面试题:hashCode的作用

在Java集合中,hashCode起着至关重要的作用,特别是在基于哈希的集合类如HashMap、HashSet和Hashtable中。以下是hashCode在集合中的主要作用: 快速查找和定位: hashCode被用作确定对象在哈希表中存储位置的索引(或称为“…...

从零开始精通Onvif之获取设备信息

💡 如果想阅读最新的文章,或者有技术问题需要交流和沟通,可搜索并关注微信公众号“希望睿智”。 与设备交互的第一步 发现设备之后,与设备进行交互的第一步,是连接上设备,并获取设备的信息。连接设备&#…...

FiRa标准UWB MAC实现(三)——距离如何获得?

继续前期FiRa MAC相关介绍,将FiRa UWB MAC层相关细节进一步进行剖析,介绍了UWB技术中最重要的一个点,高精度的距离是怎么获得的,具体使用的测距方法都有哪些,原理又是什么。为后续FiRa UWB MAC的实现进行铺垫。 3、测距方法 3.1 SS-TWR SS-TWR为Single-Sided Two-Way Ra…...

基于百度翻译API的火车头PHP翻译插件,可以翻译HTML片段

关于火车头的百度翻译插件,相信大家在火车头官网或网上都能找到相关代码,百度翻译插件是PHP写的,就一个PHP文件,简单灵活,不受火车头软件版本限制,任何有PHP插件权限的火车头版本都可以使用。但是百度API翻…...

mysql高级用法常用函数

mysql高级用法 1、自定义排序 select * from movies order by field(actors, 成龙, 靳东, 刘亦菲, 范冰冰); // 字段中存在null值 select * from movies order by field (coalesce(actors,null),成龙, 靳东, 刘亦菲, 范冰冰,null)2、空值NULL排序(ORDER BY IF(ISN…...

【打印100个常用Linux命令】

#!/bin/bash 定义一个函数,用于打印100个常用Linux命令 print_commands() { echo “以下是一些常用的Linux命令:” echo “----------------------------------” echo “1. pwd - 显示当前工作目录” echo “2. ls - 列出当前目录下的文件和文件夹” …...

友情提示:lazarus的tsortgrid.autofillcolumns存在BUG

直接在tsortgrid的属性中设置autofillcolumns为true,会提示:123个错误。即使修改为false,编译运行照样会出现上述错误。唯一解决的办法就是删除sortgrid重新添加一个。 代码设置SortGrid1.AutoFillColumns : TRUE不受影响。...

github的个人readme文件

一个好的svg图: Simon-He95/profile-3d-contrib/profile-season-animate.svg at 4281d9f46e3d5416bd8f8cc5779157bfdaa8589d Simon-He95/Simon-He95 GitHub 请访问他的主页从提交记录就可以看到这个立体的登录github的图...

java面试题: HashMap、HashSet 和 HashTable 的区别

HashMap 常用方法 HashMap 是一个基于哈希表的 Map 接口的实现。它允许使用 null 值和 null 键。 java 复制 // 创建一个HashMap HashMap<KeyType, ValueType> map new HashMap<>(); // 添加元素 map.put(key, value); // 获取元素 ValueType value map.get…...

CPP初级:模板的运用!

目录 一.泛型编程 二.函数模板 1.函数模板概念 2.函数模板格式 3.函数模板的原理 三.函数模板的实例化 1.隐式实例化 2.显式实例化 3.模板参数的匹配原则 四.类模板 1.类模板的定义格式 2.类模板的实例化 一.泛型编程 泛型编程&#xff1a;编写与类型无关的通用代码…...

排序---基数排序

前言 个人小记 一、简介 基数排序是一种非比较排序&#xff0c;所以排序速度较快&#xff0c;当为32位int整数排序时&#xff0c;可以将数分为个位十位分别为2^16,使得拷贝只需要两轮&#xff0c;从而达到2*n&#xff0c;然后给一个偏移量&#xff0c;使得可以对负数排序。以…...

“新高考”下分班怎么分?

来自安徽的张女士告诉我&#xff1a;上一年孩子升入了高中&#xff0c;但没想到才高一&#xff0c;孩子就面临了一个困难的挑选&#xff1a;312”分班&#xff01; 什么是312”分班呢&#xff1f;许多人或许不明白&#xff0c;便是要求学生在高一入学时&#xff0c;针对于3门必…...

二叉树的层序遍历-力扣

本题是二叉树的层序遍历&#xff0c;通过一个队列来控制遍历的节点&#xff0c;二叉树每层的节点和上一层入队的节点个数是相同的&#xff0c;根据这一点编写循环条件。 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* …...

N32G45XVL-STB之移植LVGL(lvgl-8.2.0)

目录 概述 1 软硬件介绍 1.1 软件版本信息 1.2 ST7796-LCD 1.3 MCU IO与LCD PIN对应关系 2 认识LVGL 2.1 LVGL官网 2.2 LVGL库文件下载 3 移植LVGL 3.1 准备移植文件 3.2 添加lvgl库文件到项目 3.2.1 src下的文件 3.2.2 examples下的文件 3.2.3 配置文件路径 3.2…...

【设计模式】创建型设计模式之 原型模式

介绍 原型模式是一种创建型设计模式&#xff0c;主要用于创建重复的对象&#xff0c;而无需重新初始化它们&#xff0c;从而提高效率并简化对象的创建过程。此模式的核心思想是利用已存在的对象实例&#xff0c;通过复制&#xff08;克隆&#xff09;的方式来生成新的对象&…...

【类型商店】字符字符串(下)

啊&#xff0c;哈喽&#xff0c;小伙伴们大家好。我是#Y清墨&#xff0c;今天呐&#xff0c;我要介绍的是字符与字符串。 导语 前两期&#xff0c;我们已经懂得了概念&#xff0c;今天来看些函数。 正题 一.增加或连接 &#xff08;1) 后面增加() string s1,s2; //定义 s…...

『 Linux 』内存管理与文件系统

文章目录 交换分区页与页框(页帧)交换分区与内存之间的交换操作系统如何管理内存物理地址转换页号与页内偏移量 内存管理,文件系统与文件管理之间的联系 交换分区 在Linux的安装过程中,用户将会被提示创建一个交换分区; 这是一个特殊的分区,其大小可以由用户根据系统内存需求和…...

线性代数|机器学习-P8矩阵低秩近似eckart-young

文章目录 1. SVD奇异值分解2. Eckart-Young2.1 范数 3. Q A Q U Σ V T QAQU\Sigma V^T QAQUΣVT4. 主成分分析图像表示 1. SVD奇异值分解 我们知道&#xff0c;对于任意矩阵A来说&#xff0c;我们可以将其通过SVD奇异值分解得到 A U Σ V T AU\Sigma V^T AUΣVT&#xff0…...

平面设计神器CorelDRAW2021精简版,你值得拥有!

亲爱的设计师小伙伴们&#xff0c;今天我要为大家种草一款神奇的软件——CorelDRAW平面设计软件2021精简版&#xff01;&#x1f929;✨作为一名专业的图形设计师&#xff0c;我深知一个好工具对于我们的工作有多么重要。而这款软件简直就是我们设计师的救星&#xff01;&#…...

为什么要用CGI做网站/怎样推广自己的产品

室内攀岩馆正在成为更多健身爱好者的新选择。一家西雅图初创公司因此萌生了一个想法&#xff1a;能否将可穿戴科技应用到这一流行趋势中? UpRope 是一家专门为室内攀岩运动生产传感器系统与个人 RFID(射频识别技术&#xff0c;通信技术的一种)腕带的创业公司&#xff0c;这种腕…...

运河建设管理网站/互联网销售公司

题目&#xff1a;输入一个复杂链表&#xff08;每个节点中有节点值&#xff0c;以及两个指针&#xff0c;一个指向下一个节点&#xff0c;另一个特殊指针random指向一个随机节点&#xff09;&#xff0c;请对此链表进行深拷贝&#xff0c;并返回拷贝后的头结点。&#xff08;注…...

网站制作论文题目/磁力引擎

1、通过VMWare给linux系统添加一个新硬盘 2、重启linux系统&#xff0c;键入 fdisk –l 命令查看新增硬盘的盘符&#xff08;通常会有 “doesnt contain a valid partion table”的提示信息&#xff09;&#xff0c;假设为 /dev/sdb 3、fdisk /dev/sdb 注意扩展&#xff08;e…...

ui作品集 网站怎么做/网页搜索引擎大全

线性回归是一种回归分析技术&#xff0c;回归分析的本质是一个函数估计问题(函数估计包含参数估计和非参数估计两个类)&#xff0c;就是找出因变量和自变量之间的关系。回归分析的因变量应该是连续变量&#xff0c;如果因变量是离散变量&#xff0c;则问题应该转化为分类问题。…...

求职网站的建设方案/优化大师win10下载

--作者&#xff1a;喝喝本文为明德扬原创及录用文章&#xff0c;转载请注明出处&#xff01;1.1 总体设计1.1.1 概述学习了明德扬至简设计法和明德扬设计规范&#xff0c;本人用FPGA设计了一个测距系统。该系统采用超声波进行测量距离再在数码管上显示。在本案例的设计过程中包…...

b2c网站推广/郑州网络推广团队

十二星座的英文名 魔羯座 (12/22 - 1/19) Capricorn 水瓶座 (1/20 - 2/18) Aquarius 双鱼座 (2/19 - 3/20) Pisces 牡羊座 (3/21 - 4/20) Aries 金牛座 (4/21 - 5/20) Taurus 双子座 (5/21 - 6/21) Gemini 巨蟹座 (6/22 - 7/22) Cancer 狮子座 (7/23 - 8/22) Leo 处女…...