含义
不再使用def 语句定义函数。
为了解决一些功能简单的需求而使用一句话函数解决,
优点
- 使用python写一些脚本时,使用匿名函数可以省去定义函数得过程,让代码更精简;
- 对于一些抽象的,不会被别的地方重复使用的函数,使用lambda可以省去函数命名的过程;
- 使代码更易理解
格式
函数名 = lambda 参数 : 返回值
#定义多个参数时,使用逗号隔开
#调用时,直接函数名(参数)即可
实例
- 单个参数匿名函数
def calc(n): return n**n print(calc(10))
上面的代码使用匿名函数为:
calc = lambda n:n**n print(calc(10))
- 多个参数匿名函数
calc = lambda a,b,c:a*b*c print(calc(1,2,3))
- 对字典排序
infors = [{"name":"wang","age":11},{"name":"xiaoming","age":20},{"name":"banzhang","age":10}] #根据age对字典排序 infors.sort(key=lambda x:x['age']) print(infors) #执行结果: #[{'name': 'banzhang', 'age': 10}, {'name': 'wang', 'age': 11}, {'name': 'xiaoming', 'age': 20}]
- lambda与其他功能函数合用
#注:map函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的饿list返回。 res = map(lambda x:x**2,[1,5,7,4,8]) for i in res: print(i)
- 把lambda当成一个变量
#把lambda当成一个变量 def test(a,b,func): result = func(a,b) return result num = test(11,22,lambda x,y:x+y) print(num)