Python之匿名函数
1、定义
匿名函数顾名思义就是指:是指一类无需定义标识符(函数名)的函数或子程序。
2、基本语法
lambda 参数:表达式(返回值) = def func(参数): 表达式(return 值)
3、应用示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #例1:求列表中所有数的平方 lis1 = [ 1 , 2 , 3 , 4 , 5 ] #用函数实现求平方 def getSquare(x): return x * x for i in lis1: print (getSquare(i), end = ' ' ) #输出结果 1 4 9 16 25 #用lambda实现 f_lambda = lambda x:x * x for i in lis1: print (f_lambda(i), end = ' ' ) #输出结果 1 4 9 16 25 |
4、在内置函数 max() 求最大值,min()求最小值, map() 映射, reduce 合并, filter() 过滤 中经常会用到lambda
示例(map):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | #例1 用map把列表中所有的名称全部加上e补充完整,比如'hom->home' strlis = [ 'her' , 'hom' , 'cak' , 'peopl' ] for i in map ( lambda x:x + 'e' ,strlis): print (i, end = ' ' ) #输出结果 here home cake people #例2 求两个列表中对应元素进行相加后的和 如lis1[0]+lis2[0] lis1 = [ 1 , 2 , 3 , 4 ] lis2 = [ 4 , 5 , 6 , 7 , 9 ] for i in map ( lambda x,y:x + y, lis1,lis2): print (i, end = ' ' ) #输出结果 5 7 9 11 #注:map只以长度最小的迭代对象为基准 |
示例(filter):
1 2 3 4 5 6 7 8 9 10 11 12 13 | #例1 求列表中元素长度大于>2的元素 strlis = [ 'a' , 'bb' , 'ccc' , 'dddd' , 'eeeee' ] for i in filter ( lambda x: len (x)> 2 , strlis): print (i, end = ' ' ) #输出结果 ccc dddd eeeee #例2 求列表中所有value>=100的键值对 diclis = [ { 'k' : 'b' , 'v' : 98 }, { 'k' : 'c' , 'v' : 99 }, { 'k' : 'd' , 'v' : 100 }, { 'k' : 'e' , 'v' : 101 }] for i in filter ( lambda x:x[ 'v' ]> = 100 , diclis): print (i, end = ' ' ) #输出结果 { 'k' : 'd' , 'v' : 100 } { 'k' : 'e' , 'v' : 101 } |
总结:
1、匿名函数即没有绑定名字的函数,没有绑定名字,意味着只能用一次就会被回收。
2、匿名函数的应用场景就是:某个功能只用一次就结束了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,携手博客园推出1Panel与Halo联合会员
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次 .NET某固高运动卡测试 卡慢分析
· 微服务架构学习与思考:微服务拆分的原则
· 记一次 .NET某云HIS系统 CPU爆高分析
· 如果单表数据量大,只能考虑分库分表吗?
· 一文彻底搞懂 MCP:AI 大模型的标准化工具箱
· 博客园2025新款「AI繁忙」系列T恤上架
· Avalonia跨平台实战(二),Avalonia相比WPF的便利合集(一)
· 记一次 .NET某固高运动卡测试 卡慢分析
· C# LINQ 快速入门实战指南,建议收藏学习!
· 7 个最近很火的开源项目「GitHub 热点速览」