python 的lambda匿名函数
先看一个例子
list(map(lambda x:x*x,[1,2,3,4,5]))
关键字lambda 表示匿名函数,冒号前面的x表示函数参数,冒号后面是表达式
匿名函数有个限制,就是只能有一个表达式,不用写return
,返回值就是该表达式的结果
如果是判断表达式,则和filter配合使用,如果是非判断表达式,可以配合reduce或者map使用
#判断表达式 list(filter(lambda x:x%2==1, range(1, 20))) #非判断表达式 list(map(lambda x:x*x,[1,2,3,4,5]))
lambda可以作为函数的返回值
def f(x,y): return lambda:x*x+y*y
lambda也可以接受多个参数,它只是只能有一个表达式,但并不是说只可以接受一个参数,可以接受多个参数,如下:
g = lambda x, y, z : (x + y) ** z print(g(1,2,2)) #输出9
lambda也可以在表达式里面使用if-else
比如if elif else
if 条件1: 语句1 elif 条件2: 语句2 else: 语句3
我们可以使用lambda
lambda x: 语句1 if 条件1 else 语句2 if 条件2 else 语句3 # 实际上是下面这样表达 lambda x: 语句1 if 条件1 else ( 语句2 if 条件2 else 语句3 )
也可以使用字典
di = {"S":0,"C":1,"Q":2} f = lambda x: di[x]
lambda 接受有多个参数的自定义函数
def score(person_info,finance_info,credit_info,act_info): xbeta = person_info * ( 3.49460978) \ + finance_info * ( 11.40051582 ) \ + credit_info * (2.45541981) \ + act_info * ( -1.68676079) \ -0.34484897 score = 650-34* (xbeta)/math.log(2) return score val['score'] = val.apply(lambda x : score(x.person_info,x.finance_info,x. credit_info,x.act_info) ,axis=1)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人