python之 lambda匿名函数以及高阶函数

news/2025/3/9 12:25:11/文章来源:https://www.cnblogs.com/yewuqi/p/18760542

lambda主要用在一些简单的,并不需要特地命名的函数. 比如我们有一个函数

def add(x,y):return x+y

用匿名函数可以是

lambda x,y : x+y
#这个表达式表示输出x+y的值

  需要注意的是,匿名函数 冒号前面是变量 相当于函数的传参  冒号后面是代码,并且冒号后面不允许出现 =号赋值

lambda也支持三目运算符

lambda x,y : x if x >y else y
#这个匿名函数表示输出X 如果x比y大的话,否则输出y

  

我们来看一些高级一点的用法 ,我们都知道sorted方法可以对一个数组排序.

list2 = [1,3,4,5,8,4,3,9]
a = sorted(list2)
print(a)
#[1, 3, 3, 4, 4, 5, 8, 9]

  但是如果有一个这样的列表 ,我们想根据元祖中的数字来对这个列表的值排序

list1 = [("a",3),("c",5),("ddd",7),("ea",2),("bb",9),("fe",8),
]

 我们可以用sorted方法的key关键字,传递一个lambda函数给他

a = sorted(list1,key=lambda x:x[1])
print(a)
#[('ea', 2), ('a', 3), ('c', 5), ('ddd', 7), ('fe', 8), ('bb', 9)]

  lambda函数更多的是配合高阶函数来使用,比如我们有个列表,我们需要计算列表中每个值的平方

list2 = [1,3,4,5,8,4,3,9]
list1 = []
for i in list2:list1.append(i ** 2 )
print(list1)
#[1, 9, 16, 25, 64, 16, 9, 81]

  比较繁琐,我们用高阶函数加匿名函数 一行代码就可以实现

list2 = [1,3,4,5,8,4,3,9]a = map(lambda x:x**2 ,list2)
print(list(a))
#[1, 9, 16, 25, 64, 16, 9, 81]
#这里map函数得到的结果是一个map对象,我们可以通过list转换的方式将他打印出来.map对象不能直接print

 映射 (map) 高阶函数还可以对1个以上的对象进行计算,比如

list1 = (1,3,4,5,8,4,3,9)
list2 = (1,3,4,5,8,4,3,9)a = map(lambda x,y:x + y ,list1,list2)
print(tuple(a))
#这可以让两个元祖的值互相相加,得出结果  (2, 6, 8, 10, 16, 8, 6, 18) 

 规约(reduce) 要注意的是reduce需要导包才可以使用 

from functools import reduce

 

 

 

 

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

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

相关文章

P3629 [APIO2010] 巡逻

P3629 [APIO2010] 巡逻 看题解大佬们都用数学推理求两遍直径的方法,然而萌新并不会这么高级的方式,只能大力分讨了。 思路 对于 \(k=1\) 的情况,加上一条边时,树上出现了一条环且长为 \(S\),环上的原路径都可以少走一遍,再算上新路径要走一遍。此时答案为 \(2 \times (n-…

python——常用函数map、lambda

lambda:英文含义是,希腊字母表第11个字母 https://baijiahao.baidu.com/s?id=1781168343754714555&wfr=spider&for=pc

全面的C#/.NET/.NET Core面试宝典(永久免费)

前言C#/.NET/.NET Core相关技术常见面试题汇总,不仅仅为了面试而学习,更多的是查漏补缺、扩充知识面和大家共同学习、携手进步。该知识库主要由自己平时学习和工作实践总结、网上优秀文章资料收集(这一部分一定会标明来源)和社区小伙伴提供三部分组成。 面试宝典获取方式因…

20241909 2024-2025-2《网络攻防实践》第2次作业

@目录1. 知识点梳理与总结1.1实验要求1.2知识点总结2. 实验过程2.1 实验环境2.2 详细实验过程2.2.1查询baidu.com2.2.2 查询某一好友的IP地址,地理位置2.2.3 使用nmap开源软件对靶机环境进行扫描,回答以下问题并给出操作命令。2.2.4 使用Nessus开源软件对靶机环境进行扫描,回…

dify跨域问题

在本地电脑上,通过vmware安装dify使用时,没有遇到这个问题。 部署dify之后,在添加模型的API-key的时候,一直添加不上,没有反应。打开控制台报错截图如下:报错信息 - Access to fetch at https://marketplace.dify.ai/api/v1/plugins/search/advanced from origin http://…

Program1

实验1 实验1代码 p1: #include<stdlib.h>int main() {printf(" o \n");printf("<H>\n");printf("I I\n");printf(" o \n");printf("<H>\n");printf("I I\n");system("pause");retur…

C#之BitConverter.ToInt16

byte[] bytes = {1,3 }; short s = BitConverter.ToInt16(bytes,0); Console.WriteLine(s);从低位到高位填充: 0000 0003 0000 0001 3*2^8+1=769;byte[] bytes ={0x21,0x31};short s = BitConverter.ToInt16(bytes,0);Console.WriteLine(s);从低位到高位填充: 0003 0001 0002…

大语言模型中的归一化技术:LayerNorm与RMSNorm的深入研究

在LLama等大规模Transformer架构的语言模型中,归一化模块是构建网络稳定性的关键组件。本文将系统分析归一化技术的必要性,并详细阐述为何原始Transformer架构中的LayerNorm在LLama模型中被RMSNorm所替代的技术原理。https://avoid.overfit.cn/post/224e11d8a7d84870b1a3d5e7…

nginx 403

其实大多数403错误,都主要是因为 nginx 没有网站资源目录的权限,所以为了安全起见,我们通常都不会将 nginx工作用户改成 root,而是去赋予网站资源目录权限 我们先去看下网站资源目录的权限都是777权限,这是因为我之前给它提权过。 咦不对啊,明明已经改成777权限了,怎么还…

UVA12244 Growing Strings

UVA12244 Growing Strings 题面 形式化题意 给定 \(N\) 个字符串 \(S_1 \dots S_N\),从中选出一些字符串首尾相接依次排成一个序列。在序列中,前面串是后面串的子串。 每组数据输出一行一个整数,表示最多可以选择的字符串个数。 思路 对于字符串匹配问题,第一时间想到 AC 自…

第四课 句法结构与依存分析

人类理解自然语言的方式有很多,但是绝大多数用的还是通过上下文来推断某些词的含义。现代自然语言处理也是基于这个方式来进行建模的 我们来看一个例子,如下可以知道,in,large是修饰crate的,look是修饰in the crate的,in the kitchen是修饰crate的,by the door也是修饰c…

3.9 android真机测试通过了

deepseek简直太厉害了,我昨天写的代码一直报错访问不了网络,然后我就跟deepseek描述我的错误 跟着它给的解决办法开放了防火墙端口,之后就可以通过了,成功的在真机上将信息提交到了数据库