c++ lambda函数_lambda表达式

一.lambda语法

3ae01bca373325eae0d05aa5420dec4c.png b0ef61833b93dc4f29708e012de6c53e.png

lambda参数列表:表达式

lambda只是一个表达式,函数体比def简单

lambda的主体是一个表达式,而不是一个代码块。只能在lambda表达式中封装有限的逻辑进去。

lambda表达式是起到一个函数快速书写的作用。允许在代码内嵌入一个函数的定义

注意:

1.lambda表达式的参数可有可无,函数的参数在lambda表达式中完全适用

2.lambda表达式能接收任何数量的参数但只能返回一个表达式的值

3.直接打印lambda表达式,输出的是此lambda的内存地址

# 需求:函数  返回值 100# 1.函数def fn1():return 100result = fn1()print(result)# 2.lambda 匿名函数# lambda 参数列表:表达式fn2 = lambda:100print(fn2) # lambda内存地址# 100返回值 调用函数print(fn2())# lambda参数列表:表达式# 注意:lambda表达式的参数可有可无,函数的参数在lambda表达式中完全适用#      lambda表达式能接收任何数量的参数但只能返回一个表达式的值# 直接打印lambda表达式,输出的是此lambda的内存地址

体验lambda加法计算

# 3 + 2 + 1def sum_numbers(num):# 1.如果是1,直接返回1--出口    if num == 1:return 1    # 2.如果不是1,重复执行累加并返回结果    return num + sum_numbers(num - 1)
sum_result = sum_numbers(3)# 输出结果是6print(sum_result)# 函数def fn1():return 100print(fn1)print(fn1())# lambda表达式def fn2(): return 100print(fn2)print(fn2())

二.lambda的参数形式

3ae01bca373325eae0d05aa5420dec4c.png b0ef61833b93dc4f29708e012de6c53e.png

1.无参数

# 1.无参数fn1 = lambda:100  # 冒号后面返回的是结果print(fn1())

2.一个参数

# 2.一个参数fn2 = lambda a: aprint(fn2('hello world'))

3.默认参数

# 3.默认参数(缺省参数)fn3 = lambda a,b,c = 100: a + b + cprint(fn3(10,20))print(fn3(10, 20, 200))

4.可变参数:*args

 注意:这里的可变参数传入到lambda之后,返回值为元组

# 4.可变参数:*args# 这里的可变参数传入到lambda之后,返回值为元组fn4 = lambda *args:argsprint(fn4(10, 20))print(fn4(10, 20, 40))print(fn4(10))

5.可变参数:**kwargs

# 5.可变参数:**kwargsfn5 = lambda **kwargs:kwargsprint(fn5(name='python'))print(fn5(name='python',age = 10))

三.lambda的应用

3ae01bca373325eae0d05aa5420dec4c.png b0ef61833b93dc4f29708e012de6c53e.png

1.带判断的lambda

# lambda 两个数字比大小,谁大返回谁# 三目运算符,判断两个元素的大小,谁大返回谁到前面,否则else后面fn1 = lambda a,b:a if a > b else bprint(fn1(1000, 800))

2.列表数据按字典key的值排序

按照key值升序排列

按照key值降序排列,reverse = True

students = [
{'name':'tom','age':20}, {'name':'rose','age':30}, {'name':'jack','age':40}
]# sort(key = lambda...,reverse = bool数据,可做升序或降序的排列)# 1. (name key)按照name 这个key对应的值,进行升序排列# name key 对应的值进行升序排序students.sort(key = lambda x:x['name'])print(students)# 2. (name key)按照name 这个key对应的值,进行降序排列# name key 对应的值进行降序排序students.sort(key = lambda x:x['name'],reverse = True)print(students)# 3. age key 对应的值进行升序排序students.sort(key = lambda x: x['age'])print(students)
fn = lambda string: lambda msg: f'{string}: {msg}!'fnh = fn("hello")print(fnh("MrSun"))
fnw = fn("welcome to")print(fnw("China"))
3a35b632882d5fc1e51f4dd03d1f7dcc.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【优质项目推荐】 1、项目代码均经过严格本地测试,运行OK,确保功能稳定后才上传平台。可放心下载并立即投入使用,若遇到任何使用问题,随时欢迎私信反馈与沟通,博主会第一时间回复。 2、项目适用于计算机相关专业(如计科、信息安全、数据科学、人工智能、通信、物联网、自动化、电子信息等)的在校学生、专业教师,或企业员工,小白入门等都适用。 3、该项目不仅具有很高的学习借鉴价值,对于初学者来说,也是入门进阶的绝佳选择;当然也可以直接用于 毕设、课设、期末大作业或项目初期立项演示等。 3、开放创新:如果您有一定基础,且热爱探索钻研,可以在此代码基础上二次开发,进行修改、扩展,创造出属于自己的独特应用。 欢迎下载使用优质资源!欢迎借鉴使用,并欢迎学习交流,共同探索编程的无穷魅力! 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值