一、匿名函数定义
lambda 函数是一个匿名函数(即,没有名称定义),它可以接受任意数量的参数,但与普通函数不同,它只计算并返回一个表达式
二、匿名函数语法
lambda arguments(参数): expression(表达式)
说明: arguments是函数的参数,expression是返回的值。
lambda 函数包括三个元素:
关键字 lambda:与普通函数中 def 类似
参数:支持传递位置和关键字参数,与普通函数一样
正文:处理定参数的表达式
三、匿名函数特点
- 匿名性:lambda函数没有名字。
- 简洁性:lambda函数通常只有一行代码,非常适合编写简单的函数。
- 即用即弃:lambda函数主要用于一次性操作,不需要重复使用。
四、匿名函数的使用
1、映射函数map()中,我们可以使用lambda函数来应用某个操作到序列的每个元素上。
ll = [1, 2, 3, 4, 5]
mm=map(lambda x: x **3, ll) #每个元素的3次幂
print(list(mm))
2、过滤函数filter()中,我们可以使用lambda函数来过滤序列中满足某个条件的元素。
ll = [33, 3, 22, 2, 11, 150]
ff=filter(lambda x: x > 20, ll) #过滤大于20的元素
print(list(ff))
3、排序:在Python中,我们可以使用lambda函数作为sorted()或list.sort()函数的key参数,以便根据自定义规则对列表进行排序。
ll = [28, 3, 22, 2, 36, 15,22,11]
print(ll)
ss=sorted(ll,key=lambda x:x%2) #排序,偶数在前,奇数在后
print(ss)
五、 Lambda 函数的优缺点
优点
可以在定义后立即调用
可以作为参数传递给高阶函数,例如 filter()、map() 和 reduce()等
缺点
不能执行多个表达式
很容易变得麻烦,可读性差,例如当它包括一个 if-elif-...-else 循环
不能包含任何变量赋值(例如,lambda x: x=0 将抛出一个语法错误)
我们不能为 lambda 函数提供文档字符串
六、总结
lambda函数是Python中一种强大而简洁的工具,它允许我们以匿名的方式定义简单的函数。