python中lambda函数如何理解
一:问题
python中lambda函数如何理解?
二:回答
如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 | def add(a,b): return a + b data = lambda a,b:a + b if __name__ = = "__main__" : print (add( 3 , 4 )) print (data( 3 , 4 )) >>> 运行结果如下: >>> 7 >>> 7 |
这里lambda函数,可以这样理解:
lambda 替代了上面的def add,并去掉了return,也就是lambda 后面直接跟上了传参的参数,冒号后面跟着的是函数要实现的操作,操作完成会直接返回结果
三:拓展
按照上面的思路:对data数据进行过滤性别为女性,按照年龄从大到小排序
1 2 3 4 5 6 7 8 9 | data = [{ "name" : "bob" , "sex" : "male" , "age" : 20 },{ "name" : "linda" , "sex" : "female" , "age" : 35 }, { "name" : "soniar" , "sex" : "female" , "age" : 28 },{ "name" : "jane" , "sex" : "female" , "age" : 40 }] filter_data = list ( filter ( lambda item: item[ "sex" ] = = "female" ,data)) filter_data.sort(key = lambda item:item[ "age" ],reverse = True ) print (filter_data) >>> 程序运行结果如下: >>> [{ 'name' : 'jane' , 'sex' : 'female' , 'age' : 40 }, { 'name' : 'linda' , 'sex' : 'female' , 'age' : 35 }, { 'name' : 'soniar' , 'sex' : 'female' , 'age' : 28 }] |
上面lambda item: item["sex"] == "female",即遍历data列表中每一项,当符号性别为女性这个条件时则返回,得到filter_data的数据为除去了性别为男性的列表数据
然后用sort对filter_data数据进行排序,key=lambda item:item["age"],代表以age的值为排序对象进行排序,最终filter_data即为筛选了性别为女性,且按年龄降序排序的结果。
分类:
07-python3核心技术
标签:
lambda函数
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!