匿名函数lambda

1|0什么是lambda


lambda是一种生成函数对象表达式形式,它返回的一个函数。由于它没有变量名,有时也被叫做匿名函数

2|0lambda语法


以lambda关键字开头,之后是一个或多个参数,接着是一个冒号,最后是一个表达式

lambda arg1, arg2, ...argN: 表达式

注意:
1.lambda是一个表达式,而不是一个语句
2.lambda的主题是一个单个的表达式,而不是一个代码块

3|0实例


3|1实例1


定义一个函数,传入三个参数,并返回它们的和
使用def定义

def func(x, y, z): return x + y + z print(func(1, 2, 3))

使用lambda定义

f = lambda x, y, z: x + y + z print(f(1, 2, 3))

3|2实例2


传入三个位置参数,返回三个参数的拼接字符串。通过改变第一个默认参数的值,来改变返回的字符串
使用def定义

def contact_string(a='I', b=' like', c=' Python'): return a + b + c print(contact_string('We'))

使用lambda定义

x = (lambda a="I", b=" like", c=" Python": a + b + c) print(x("We"))

3|3实例3


编写跳转表
使用def定义

def f1(x): return x ** 2 def f2(x): return x ** 3 def f3(x): return x ** 4 L = [f1, f2, f3] for f in L: print(f(2)) print(L[0](3))

使用lambda定义

L = [lambda x : x ** 2, lambda x : x ** 3, lambda x : x ** 4] for f in L: print(f(2)) print(L[0](3))

3|4实例4


使用字典的形式创建行为表
使用def定义

key = "got" def behavior(key): if key == "already": return 2 + 2 elif key == "got": return 2 * 4 elif key == "one": return 2 ** 6 print(behavior(key))

使用lambda定义

key = 'got' print({ 'alredy': (lambda : 2 + 2), 'got': (lambda : 2 * 4), 'one': (lambda : 2 ** 6) }[key]())

__EOF__

本文作者cnhkzyy
本文链接https://www.cnblogs.com/my_captain/p/12799328.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   cnhkzyy  阅读(368)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示