Python 中的 lambda 函数介绍

news2024/11/29 10:02:38

目录

Python 中的 lambda 函数介绍

1. lambda 函数的基本概念

2. lambda 函数的语法

3. lambda 函数的常见用法

3.1 简单的数学运算

3.2 排序和过滤

排序

过滤

3.3 映射(Map)

3.4 函数参数

4. lambda 函数的限制

5. 实际应用示例

5.1 多条件排序

5.2 动态排序


Python 中的 lambda 函数介绍

lambda 函数是 Python 中的一种匿名函数,也称为 lambda 表达式。与常规的函数定义不同,lambda 函数可以在一行内定义,非常适合用于简单的、临时性的函数需求。本文将详细介绍 lambda 函数的基本概念、语法、常见用法以及一些实用的代码示例。

1. lambda 函数的基本概念

lambda 函数是一种简洁的函数定义方式,通常用于需要简单函数的地方。lambda 函数的特点是:

  • 匿名lambda 函数没有名字,通常在定义后立即使用。
  • 简洁lambda 函数可以在一行内定义,适合简单的功能。
  • 临时lambda 函数通常用于临时性的、一次性使用的场景。
2. lambda 函数的语法

lambda 函数的基本语法如下:

lambda arguments: expression
  • arguments:参数列表,可以有多个参数,用逗号分隔。
  • expression:表达式,lambda 函数的返回值。
3. lambda 函数的常见用法
3.1 简单的数学运算

lambda 函数非常适合用于简单的数学运算。

# 定义一个 lambda 函数,计算两个数的和
add = lambda x, y: x + y
print(add(3, 5))  # 输出 8

# 定义一个 lambda 函数,计算一个数的平方
square = lambda x: x ** 2
print(square(4))  # 输出 16
3.2 排序和过滤

lambda 函数经常用于排序和过滤操作。

排序
# 对列表按长度进行排序
words = ["apple", "banana", "cherry", "date"]
sorted_words = sorted(words, key=lambda x: len(x))
print(sorted_words)  # 输出 ['date', 'apple', 'cherry', 'banana']
过滤
# 过滤出偶数
numbers = [1, 2, 3, 4, 5, 6]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers)  # 输出 [2, 4, 6]
3.3 映射(Map)

lambda 函数可以与 map 函数一起使用,对列表中的每个元素进行操作。

# 将列表中的每个数乘以 2
numbers = [1, 2, 3, 4, 5]
doubled_numbers = list(map(lambda x: x * 2, numbers))
print(doubled_numbers)  # 输出 [2, 4, 6, 8, 10]
3.4 函数参数

lambda 函数可以用作其他函数的参数。

# 定义一个函数,接受一个函数作为参数
def apply_function(func, x):
    return func(x)

# 使用 lambda 函数作为参数
result = apply_function(lambda x: x ** 2, 4)
print(result)  # 输出 16
4. lambda 函数的限制

尽管 lambda 函数非常简洁和方便,但它也有一些限制:

  • 只能包含一个表达式lambda 函数不能包含复杂的逻辑和多条语句。
  • 没有名字lambda 函数是匿名的,通常在定义后立即使用。
  • 不适合复杂功能:对于复杂的逻辑和功能,建议使用常规的 def 函数定义。
5. 实际应用示例
5.1 多条件排序
# 对列表按年龄和姓名排序
people = [
    {"name": "Alice", "age": 30},
    {"name": "Bob", "age": 25},
    {"name": "Charlie", "age": 30}
]

sorted_people = sorted(people, key=lambda x: (x['age'], x['name']))
print(sorted_people)
# 输出 [{'name': 'Bob', 'age': 25}, {'name': 'Alice', 'age': 30}, {'name': 'Charlie', 'age': 30}]
5.2 动态排序
# 根据用户输入动态排序
data = [1, 2, 3, 4, 5]

def sort_data(data, order):
    return sorted(data, key=lambda x: x, reverse=order)

# 升序排序
print(sort_data(data, False))  # 输出 [1, 2, 3, 4, 5]

# 降序排序
print(sort_data(data, True))  # 输出 [5, 4, 3, 2, 1]

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

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

相关文章

长时间无事可做是个危险信号

小马加入的是技术开发部,专注于Java开发。团队里有一位姓隋的女同事,是唯一的web前端工程师,负责页面开发工作,比小马早两个月入职。公司的项目多以定制化OA系统为主,后端任务繁重,前端工作相对较少。在这样…

Llama模型分布式训练(微调)

1 常见大模型 1.1 参数量对照表 模型参数量发布时间训练的显存需求VGG-19143.68M2014~5 GB(单 224x224 图像,batch_size32)ResNet-15260.19M2015~7 GB(单 224x224 图像,batch_size32)GPT-2 117M117M2019~…

Linux 子进程 -- fork函数

子进程 什么是子进程? 子进程指的是由一个已经存在的进程(称为父进程或父进程)创建的进程. 如: OS (操作系统) 就可以当作是一个进程, 用来管理软硬件资源, 当我点击浏览器, 想让浏览器运行起来时, 实际上是由 OS 接收指令, 然后 OS 帮我们将浏览器运行…

DataLoade类与list ,iterator ,yield的用法

1 问题 探索DataLoader的属性,方法 Vscode中图标含意 list 与 iterator 的区别,尤其yield的用法 2 方法 知乎搜索DataLoader的属性,方法 pytorch基础的dataloader类是 from torch.utils.data.dataloader import Dataloader 其主要的参数如下&…

C++入门——“C++11-lambda”

引入 C11支持lambda表达式,lambda是一个匿名函数对象,它允许在函数体中直接定义。 一、初识lambda lambda的结构是:[ ] () -> 返回值类型 { }。从左到右依次是:捕捉列表 函数参数 -> 返回值类型 函数体。 以下是一段用lam…

【Linux网络编程】第二弹---Socket编程入门指南:从IP、端口号到传输层协议及编程接口全解析

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】【Linux网络编程】 目录 1、Socket 编程预备 1.1、理解源 IP 和目的 IP 1.2、认识端口号 1.2.1、端口号范围划分 1.2.2、理解 &q…

《用Python实现3D动态旋转爱心模型》

简介 如果二维的爱心图案已经无法满足你的创意,那今天的内容一定适合你!通过Python和matplotlib库,我们可以实现一个动态旋转的3D爱心模型,充满立体感和动感。# 实现代码(完整代码底部名片私信) 以下是完…

shell-函数调用进阶即重定向

shell-函数调用进阶 声明! 学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷…

【高等数学学习记录】微分中值定理

一、知识点 (一)罗尔定理 费马引理 设函数 f ( x ) f(x) f(x) 在点 x 0 x_0 x0​ 的某邻域 U ( x 0 ) U(x_0) U(x0​) 内有定义,并且在 x 0 x_0 x0​ 处可导,如果对任意的 x ∈ U ( x 0 ) x\in U(x_0) x∈U(x0​) &#xff0…

【vue-router】vue-router如何实现动态路由

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

Web前端技术浅谈CooKieAG网址漏洞与XSS攻防策略

随着互联网技术的飞速发展,Web前端开发已经成为构建网站和应用程序的重要环节。然而,Web前端开发中存在许多安全问题,这些问题不仅会影响用户体验,还可能给企业和个人带来严重的经济损失。但是web前端安全方面技术包含的东西较多,我们这里着重聊一聊关于XSS 的危害与…

关于VNC连接时自动断联的问题

在服务器端打开VNC Server的选项设置对话框,点左边的“Expert”(专家),然后找到“IdleTimeout”,将数值设置为0,点OK关闭对话框。搞定。 注意,服务端有两个vnc服务,这俩都要设置ide timeout为0才行 附件是v…

51c自动驾驶~合集35

我自己的原文哦~ https://blog.51cto.com/whaosoft/12206500 #纯视觉方案的智驾在大雾天还能用吗? 碰上大雾天气,纯视觉方案是如何识别车辆和障碍物的呢? 如果真的是纯纯的,特头铁的那种纯视觉方案的话。 可以简单粗暴的理解为…

计算分数的浮点数值

计算分数的浮点数值 C语言代码C 代码Java代码Python代码 💐The Begin💐点点关注,收藏不迷路💐 两个整数a和b分别作为分子和分母,既分数 a/b ,求它的浮点数值(双精度浮点数,保留小数点…

戴尔电脑安装centos7系统遇到的问题

1,找不到启动盘(Operation System Loader signature found in SecureBoot exclusion database(‘dbx’).All bootable devices failed secure Boot Verification) 关闭 Secure Boot(推荐): 进入 BIOS/UEFI…

简单获取json预览

data: JSON 数据。 collapsedNodeLength: 对象或数组的长度超过此阈值时会折叠 deep: json路径深度超过此值时会折叠 showLineNumber: 显示左侧行号 showIcon: 显示图标。 virtual: 使用虚拟滚动 height: 使用虚拟滚动时列表的高度 itemHeight: 使用虚拟滚动时节点的高…

ChatGPT/AI辅助网络安全运营之-数据解压缩

在网络安全的世界中,经常会遇到各种压缩的数据,比如zip压缩,比如bzip2压缩,gzip压缩,xz压缩,7z压缩等。网络安全运营中需要对这些不同的压缩数据进行解压缩,解读其本意,本文将探索一…

Cookie概念和API

Cookie概念 Cookie在HTTP中它表示服务器送给客户端浏览器的小甜点。其实Cookie就是一个键和一个值构成的,随着服务器端的响应发送给客户端浏览器。然后客户端浏览器会把Cookie保存起来,当下一次再访问服务器时把Cookie再发送给服务器。 Cookie是由服务器…

qt音频实战

一、Qt音频基础知识 1、QT multimedia 2、QMediaPlayer类:媒体播放器,主要用于播放歌曲、网络收音机等功能。 3、QMediaPlaylist类:专用于播放媒体内容的列表。 二、界面设计 三、代码 #include "mainwindow.h" #include "…

GDPU Android移动应用 数据存储

又是学到了数据持久化。 登录界面 题外话:有无动画大佬带带呀,前端移动端可免( •̀ .̫ •́ ),合作可私信哦。 1.用户登陆和“记住我”功能 该内容拥有两个Activity活动视图: (1)LoginActivity&#x…