lambda函数又叫匿名函数, 匿名函数就是没有名字的函数,不使用def语句声明的函数。如果要声名,则需要使用lambda关键字进行声明。
一般用来定义简单的函数。
1.声明一个简单的加法匿名函数:
冒号前面的为函数的参数, 后面为函数的表达式, lambda函数可以接受任何数量的参数, 但只能返回一个表达式的值
1 1 1 _sum = lambda num1, num2: num1 + num2 2 2 2 print(‘和为:‘, _sum(1, 2)) 3 3 3 print(‘和为:‘, _sum(2, 3)) 4 4 # 和为: 3 5 5 # 和为: 5
2.将匿名函数当做参数传递:
1 def fun(a, b, opt): 2 print(‘a = %d‘ % a) 3 print(‘b = %d‘ % b) 4 print(‘res = %d‘ % opt(a, b)) 5 6 7 fun(100, 200, lambda x, y: x + y) 8 fun(100, 200, lambda x, y: y - x) 9 # a = 100 10 # b = 200 11 # res = 300 12 # a = 100 13 # b = 200
3.当做内置函数的参数使用:
1 stu = [ 2 {"name": ‘alen‘, ‘age‘:18}, 3 {"name": ‘clen‘, ‘age‘:19}, 4 {"name": ‘dlen‘, ‘age‘:20}, 5 {"name": ‘blen‘, ‘age‘:21}, 6 ] 7 stu.sort(key=lambda x :x[‘age‘], reverse=True) # reverse 默认为false, 表示正序, true为倒序 8 print(stu) 9 # [{‘name‘: ‘blen‘, ‘age‘: 21}, {‘name‘: ‘dlen‘, ‘age‘: 20}, {‘name‘: ‘clen‘, ‘age‘: 19}, {‘name‘: ‘alen‘, ‘age‘: 18}]