【Python】—— lambda表达式

目录

(一)应用场景

(二)lambda 语法

(三)示例分析

(四)lambda参数形式

4.1 无参数

4.2 一个参数

4.3 默认参数

4.4 可变参数 :*args

4.5 可变参数 :**kargs

(五)lambda的应用

5.1 带判断的lambda

5.2 列表数据按照字典key的值排序


(一)应用场景

在Python中,lambda是一个关键字,用于定义小的匿名函数。

这些函数也称为“lambda函数”或“lambda表达式”。

lambda函数主要用于需要一个函数作为参数的函数式编程场景,或者需要定义一个简单的函数而不需要使用def语句。

lambda 函数特点:

  • lambda 函数是匿名的,它们没有函数名称,只能通过赋值给变量或作为参数传递给其他函数来使用。
  • lambda 函数通常只包含一行代码,这使得它们适用于编写简单的函数。

(二)lambda 语法

lambda arguments: expression  
  • lambda 是 Python 的关键字,用于定义 lambda 函数。
  • arguments` 是函数的参数列表,和`def`中定义函数时一样,只是没有变量名。  
  • expression` 是一个表达式,这个表达式的值会被返回。  

(三)示例分析

示例:计算 a + b

  • 方法一:函数实现
def add(a,b):return a +b
result = add(1,2)
print(result)
  • 方法二:lambda实现 
res = lambda a,b : a + b
print(res(1,2))

(四)lambda参数形式

4.1 无参数

  • 以下的 lambda 函数没有参数:
f = lambda: 100
print(f())  # 输出: 100

4.2 一个参数

  •  以下的 lambda 函数有一个参数:
fn1 = lambda a:a
print(fn1('hello world'))   # 输出: hello world

又或如下:

x = lambda a : a + 10
print(x(5))

4.3 默认参数

  •   以下的 lambda 函数默认参数:
fn1 = lambda a,b,c=100: a + b + c
print(fn1(10,20))    # 输出: 130

4.4 可变参数 :*args

在Python中,lambda 函数通常用于定义简单的匿名函数

fn2 = lambda *args : args
print(fn2(10))       # 输出:(10,)
print(fn2(10,20))    # 输出:(10, 20)
print(fn2(10,20,30)) # 输出:(10, 20, 30)

4.5 可变参数 :**kargs

**kargs允许你传入任意数量的关键字参数到一个函数中,并将这些参数存储在一个字典中。

fn3 = lambda **kwargs : kwargs
print(fn3(name = 'python'))         # 输出:{'name': 'python'}
print(fn3(name = 'python',age = 20))# 输出:{'name': 'python', 'age': 20}

(五)lambda的应用

5.1 带判断的lambda

在Python中,lambda表达式用于定义简单的匿名函数。虽然 lambda通常用于执行简单的操作,但它也可以包含基本的判断逻辑,比如使用条件表达式(也称为三元运算符)。

条件表达式在Python中的语法是 value_if_true if condition else value_if_false。你可以在 lambda 函数中使用这种语法来执行基于条件的判断。

# 定义一个lambda函数,如果x大于y则返回x,否则返回y
fn1 = lambda x,y: x if x > y else y# 测试lambda函数
print(fn1(5,10))  # 输出: 10
print(fn1(7,5))  # 输出: 7
print(fn1(-5,0))  # 输出: 0

5.2 列表数据按照字典key的值排序

在Python中,lambda函数常常与sorted函数一起使用,以对列表中的元素进行自定义排序。假设你有一个包含字典的列表,并且你想根据字典中的某个键(key)的值来进行排序。

  • 首先,创建一个包含字典的列表: 
data = [  {'name': 'Alice', 'age': 25},  {'name': 'Bob', 'age': 20},  {'name': 'Charlie', 'age': 22},  {'name': 'David', 'age': 23},  
]
  •  如果想根据'age'键的值进行升序排序,可以这样做:
data.sort(key=lambda x : x['age'])
print(data)
  • 输出将会是:
[{'name': 'Bob', 'age': 20}, {'name': 'Charlie', 'age': 22}, {'name': 'David', 'age': 23}, {'name': 'Alice', 'age': 25}
]
  • 如果想进行降序排序,你可以使用reversed函数或者传递reverse=Truesorted函数: 

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

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

相关文章

基于Matlab实现BP神经网络的手写数字识别

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景与意义 手写数字识别是计算机视觉和模式识别领域的一个经典问题,具有广泛的应用场景&…

信息安全从业者书单推荐

作为一名网安人,身上肩负的责任是很大的,能力越大,责任也越大,反过来责任越大,能力也必须跟得上。不管是想进这行,还是已经在这行,持续学习肯定是不能缺少的,除了在工作中积累&#…

从0开始写一个环境保护网站的第3天(JAVAWEB)

1.目标 实现首页的环境保护原因的查询,和底部友情连接部分 2.实现 2.1建立数据库表格(这里数据全是百度查询) 环境保护原因表: 友情连接表:(数据来源https://zhuanlan.zhihu.com/p/696243646&#xff0…

SqlSession是什么?在MyBatis-Spring中有什么应用?

目录 一、SqlSession是什么 二、SqlSession在MyBatis中的应用 三、SqlSession在Spring中的应用 一、SqlSession是什么 SqlSession 是 MyBatis 框架中的一个核心概念,它代表与数据库的一次会话。MyBatis 是一个流行的 Java 持久层框架,用于简化数据库…

【Linux】fork和exec中的信号继承探索

fork和exec中的信号继承探索 一、结论二、代码验证2.1 代码编写2.2 代码执行 三、linux源码验证四、APUE中的验证五、其他 一、结论 fork时子进程会继承父进程的信号处理方式,包括父进程设置信号为SIG_DFL或SIG_IGN或捕获后设置自定义处理函数。exce时子进程会继承…

ChatGPT写作指南:掌握5种高效格式成为写作达人【含实用示例】

1. **简洁指令** 当任务较简单时,可以用一小段话来说明,便于理解和执行。如下例: 背景:我负责运营一个旅游主题的社交媒体账号。 角色:作为一位经验丰富的文案创作专家,我擅长打造引人注目的旅游内容…

【无标题】亚马逊5月24日宣布推出2024出口跨境物流加速器计划

亚马逊中国5月24日郑重宣布启动“2024亚马逊出口跨境物流加速器计划”,旨在依托其世界领先的物流网络和前沿技术,结合本土资源,不断优化跨境物流服务,以强化中国卖家在跨境物流供应链管理方面的能力,进而提升整体效率&…

深度神经网络——什么是 K 均值聚类?

K 均值聚类 K 均值聚类是 无监督学习在所有无监督学习算法中,K 均值聚类可能是使用最广泛的,这要归功于它的强大功能和简单性。 K-means 聚类到底是如何工作的? 简而言之,K 均值聚类的工作原理是 创建参考点(质心&am…

Halcon 极坐标转换图像

一、概述 先看效果 将圆形的用极坐标转换成矩性然后再进行识别或者其他缺陷检测,最后在还圆到原图中 二、原理: halcon 圆环类缺陷检测的一种方法(极坐标变换法)_halcon缺口检测-CSDN博客 图像极坐标变换与反变换(…

吴恩达深度学习笔记:超 参 数 调 试 、 Batch 正 则 化 和 程 序 框 架(Hyperparameter tuning)3.4-3.5

目录 第二门课: 改善深层神经网络:超参数调试、正 则 化 以 及 优 化 (Improving Deep Neural Networks:Hyperparameter tuning, Regularization and Optimization)第三周: 超 参 数 调 试 、 Batch 正 则 化 和 程 序 框 架(Hyperparameter …

Spark SQL【Java API】

前言 之前对 Spark SQL 的影响一直停留在 DSL 语法上面,感觉可以用 SQL 表达的,没有必要用 Java/Scala 去写,但是面试一段时间后,发现不少公司还是在用 SparkSQL 的,京东也在使用 Spark On Hive 而不是我以为的 Hive O…

ubuntu20.04 开机自动挂载外加硬盘

文章目录 一、问题描述二、操作1. 查找新添盘符2. 格式化硬盘文件系统3. 挂载硬盘4. 开机自动挂载5. 取消挂载6. 查看挂载的硬盘信息 一、问题描述 因电脑使用一段时间后自身硬盘不足,需外加硬盘使得电脑自动识别加载。 二、操作 1. 查找新添盘符 sudo blkid自己…

免费、开源、好用的 SQL 客户端合集

免费、开源、好用的 SQL 客户端合集 分类 编程技术 0、SQL Chat SQL Chat 是 2023 年 3 月推出的新型 SQL 客户端,它将数据库管理带入了基于聊天的新时代。 SQL Chat 由 ChatGPT 驱动,能够帮你编写和润色 SQL 语句,让数据库操作变得更加智…

微信小程序开发环境的搭建

一、注册微信小程序账号 二、安装微信开发者工具 1.下载微信开发者工具。 官网下载地址:https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/downloads.html 2、选择稳定版Window64下载安装 3、下载完毕后,点击下一步安装 三、使用微信开发者工具…

深入理解python列表遍历:两种方法详解与实例

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、引言 二、使用索引遍历列表 三、直接使用元素遍历列表 四、总结 一、引言 在编程过程…

创建python字典的两种方法:直观与函数式

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、直观创建法:直接定义键值对 二、函数式创建法:使用内置函数dict…

CSRF 攻击

概述 CSRF(Cross-site request forgery,跨站请求伪造)。 它是指攻击者利用了用户的身份信息,执行了用户非本意的操作。 它首先引导用户访问一个危险网站,当用户访问网站后,网站会发送请求到被攻击的站点,这次请求会携带用户的c…

拼多多携手中国农业大学,投建陕西佛坪山茱萸科技小院

5月16日下午,中国农业大学陕西佛坪山茱萸科技小院在佛坪县银厂沟村揭牌。佛坪县素有“中国山茱萸之乡”的美誉,是全国山茱萸三大基地之一,当地山茱萸是国家地理标志产品,山茱萸肉产量位居全国第二。 为充分发挥佛坪县得天独厚的山…

局部放电试验变频电源

局部放电试验中的变频电源设备 局部放电试验变频电源是一种专为电力设备的局部放电检测设计的高性能电源系统。在电力设备的运行和维护过程中,局部放电测试用于探测潜在的绝缘缺陷,防止它们进一步恶化导致设备损坏。传统的局部放电试验通常使用交流电源&…

jmeter之测试计划

一、测试计划作用 测试计划是jmeter的默认控件所有线程组都是测试计划的下级控件测试计划可以配置用户自定义的变量测试计划可以配置线程组的串行或并行 二、查看界面 名称:可以修改自定义的名称注释:解释测试计划是用来做什么的用户自定义的变量&…