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+
 
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即为筛选了性别为女性,且按年龄降序排序的结果。

 

posted @   秒秒开心  阅读(27)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示