lambda的使用方法:
用lambda关键词能创建小型匿名函数。这种函数得名于省略了用def声明函数的标准步骤。
lambda函数的语法只包含一个语句
-
使用方法:
lambda 参数1,参数2,…参数n:需要实现的功能(如:参数1+参数2+…+参数n),我们称这种方式构成的函数体(代码块)为 匿名函数
test = lambda x, y: x + y print(test(3, 4)) # 7 print(test(5, 6)) # 11
注意:在例子中,第一行代码实际上为函数体命名,方便后边的调用,但是一般不使用这种。
-
应用场景:
-
传参
def sums(x,y): return x+y def minus(x,y): return x-y def calc(a,b,func): # func 这里边是一个函数 叫做回调函数 res = func(a,b) return res print(calc(10, 20, sums)) #30 print(calc(10, 20, minus) # -10
上述方法是常规方法,就是直接定义函数来实现功能。可以发现sums函数和minus函数都比较简单。此时写函数来完成就显得有点麻烦。在此,我在这里给出另一种方法:
def calc(a,b,func): # func 这里边是一个函数 叫做回调函数 res = func(a,b) return res res1 = calc(10, 20, lambda x, y: x + y) res2 = calc(10, 20, lambda x, y: x - y) print(res1, res2) # 30 -10 注意:这里直接将匿名函数lambda作为参数传入calc中参与运算
注意:这里直接将匿名函数lambda作为参数传入calc中参与运算
-
比较大小
# 01.方法一: x = 20 y = 30 if x > y: print("{}>{}".format(x,y)) # 20<30 # 02.方法二: x = 20 y = 30 res = x if x > y else y print(res) # 30 # 03.方法三 res = lambda x, y: x if x > y else y print(res(20, 30)) # 7
-
排序
students = [ { 'id': 1001, 'name': '周伟', 'sex': None, 'verbal': 90, 'math': 90, 'tel': '13512345670'}, { 'id': 1002, 'name': '赵刚', 'sex': True, 'verbal': 56, 'math': 80, 'tel': '13512345678'}, { 'id': 1003, 'name': '李强', 'sex': True, 'verbal': 48, 'math': 70, 'tel': '13512345680'}, { 'id': 1004, 'name': '刘毅', 'sex': None, 'verbal': 92, 'math': 60, 'tel': '13512345688'}, { 'id'
-