python lambda表达式 作者:马育民 • 2022-05-04 19:21 • 阅读:10038 # 介绍 lambda 表达式是只有 **一行代码** 的 **匿名函数**。 如果代码较多,则使用普通函数 lambda 表达式并不是 python 特有的,在 Java、JavaScript、scala 等高级语言中,都支持,只是略有不同 ### 作用 简化开发,编写代码更少 **提示:**不用 lambda表达式,用普通函数也可以 ### 应用场景 lambda 表达式,作为参数,传递给另一个函数 # lambda表达式 ### 无参无返回值 普通函数写法: ``` def test(): print("无参无返回值的普通函数") test() # 调用函数 ``` 改写成 lambda表达式: ``` test = lambda :print("无参无返回值 lambda表达式") test() ``` ### 一个参数,无返回值 ``` call = lambda num:print("一个参数据,无返回值 lambda表达式。打电话给:",num) call("110") ``` ### 多个参数,无返回值 使用较少,略 ### 无参数,有返回值 使用较少,略 ### 一个参数,有返回值 见 多个参数,有返回值 ### 多个参数,有返回值 不需要写 `return` ``` add = lambda a,b: a+b res = add(1,2) print("res:",res) ``` # 案例 ### 执行 map 运算 执行 `map` 计算,计算过程如下图: [![](http://65242847.gitee.io/pic/scala/Snipaste_2021-06-16_21-58-15.png)](http://65242847.gitee.io/pic/scala/Snipaste_2021-06-16_21-58-15.png) ``` l = [1,2,3,4] res = list( map(lambda x:x*2 , l) ) print("res:",res) ``` ### 执行 reduce 运算 执行 `reduce` 计算,计算过程如下图: [![](http://65242847.gitee.io/pic/hadoop/Snipaste_2021-11-13_14-50-12.png)](http://65242847.gitee.io/pic/hadoop/Snipaste_2021-11-13_14-50-12.png) 代码: ``` from functools import reduce l = [1,2,3,4] res = reduce(lambda a,b:a+b , l) print("res:",res) ``` 原文出处:http://malaoshi.top/show_1IX3FdV61VhM.html