Python - lambda 匿名函数
说匿名函数之前,先来回归一下函数的语法格式:
def 函数名([形式参数1, 形式参数2, ....., 形式参数n]):
函数体
当函数中只有一行return语句时,函数的定义可以用一个lambda表达式来代替。
lambda的语法格式:
lambda [形式参数1, 形式参数2, ....., 形式参数n]: 关于形式参数的表达式
lambda函数与普通定义函数的语法格式对比:
- (1) 没有函数名
- (2) 没有关键字def
- (3) 没有小括号
- (4) 关于形式参数的表达式相当于函数的返回值
所以 lambda 函数就是匿名简化版的函数。
对比:
普通函数
def add(num1, num2):
return num1 + num2
对应的lambda表达式
lambda num1, num2: num1 + num2
lambda表达式打印
lambda num1, num2: num1 + num2
# 在python中,一切皆为对象,所以lambda表达式也是对象,从而lambda表达式可以被赋值给变量。
le = lambda num1, num2: num1 + num2
print(le(1, 2)) # 3
一个函数可以作为另外一个函数的实参,从而lambda表达式也可以作为一个函数的实参。
引用上一节课的例子:map函数,如果不记得 map 函数的使用方法,看这个
https://www.cnblogs.com/wwho/p/14454408.html
result = map(lambda x: x * x, [1, 2, 3])
print(list(result)) # [1, 4, 9]
一个函数可以作为另外一个函数的返回值
还是拿上节课的例子:
https://www.cnblogs.com/wwho/p/14454408.html
# -*- coding: UTF-8 -*-
def add(num1, num2):
return num1 + num2
print(add)
def do_sth():
return add
print(do_sth()(2, 3)) # 结果:5
使用lambda表达式替换
def do_sth():
return lambda num1, num2: num1 + num2
print(do_sth()(2, 3)) # 结果:5
使用 lambda 函数简化一些
分类:
python
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现