匿名函数:就是没有名字的函数,如果函数功能比较简单且调用一次就完了,可以简化成匿名函数。如果有很多地方都要调用该函数,那么不要用匿名函数

作用:以表达式的形式来定义函数,只能实现一些简单的处理。

语法格式: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}]

 

 

 

 

 

 

 

 

posted on 2021-09-10 17:55  周文豪  阅读(110)  评论(0编辑  收藏  举报