匿名函数:就是没有名字的函数,如果函数功能比较简单且调用一次就完了,可以简化成匿名函数。如果有很多地方都要调用该函数,那么不要用匿名函数
作用:以表达式的形式来定义函数,只能实现一些简单的处理。
语法格式:lambda 参数1,参数2: 返回值
第一种使用方式:
定义匿名函数并赋值给变量,然后变量()的方式去调用
⽤lambda关键词能创建⼩型匿名函数。这种函数得名于省略了⽤def声明函数的标准步骤。
lambda函数的语法只包含⼀个语句,如下:
lambda [arg1 [,arg2,.....argn]]:expression
示例:两个数相加
def func_sum(a,b): return a + b res = func_sum(10,20) print(res)
使用匿名函数
sum = lambda a,b : a + b # 此方法相当于给函数起了一个名字 res = sum(10,20) print(res)
上面是匿名函数的第一种使用方式
第二种使用方式(常用的方式):
把匿名函数用()括起来,然后在最后面()直接调用
res = (lambda a,b : a + b)(10,20) print(res)
匿名函数的应用场景:函数作为参数传递
def func_sum(a,b,opt): print(a) print(b) print(opt(a,b)) func_sum(1,3,lambda a,b:a+b)
结果:
示例:下⾯的数据如何指定按age或name排序?
stus = [ {"name": "zhangsan", "age": 18}, {"name": "lisi", "age": 19}, {"name": "wangwu", "age": 17} ] stus.sort(key = lambda x: x['name']) print(stus) stus.sort(key = lambda x:x['age']) print(stus)
结果:
[{'name': 'lisi', 'age': 19}, {'name': 'wangwu', 'age': 17}, {'name': 'zhangsan', 'age': 18}] [{'name': 'wangwu', 'age': 17}, {'name': 'zhangsan', 'age': 18}, {'name': 'lisi', 'age': 19}]