摘要:本文主要介绍了lambda的使用。
1、lambda初体验
lambda其实是一个匿名函数,其使用的语法形式为 lambda 参数列表:表达式(返回值),其主要作用是减少代码量。
1 func1=lambda a,b:a*b 2 print(func1) #<function <lambda> at 0x000001BA03FF5598> 可以看出匿名函数 3 print(func1(10,10)) #100
2、lambda的参数形式
其实可以想到lambda作为一个匿名函数,其参数的形式应该和正常的函数没有什么两样。如下:
1 func1=lambda :100 #无参数形式 2 print(func1()) #100 3 4 func2=lambda a,b:a**b #一般参数形式 5 print(func2(2,3)) #8 6 7 func3=lambda a,b,c=100:a**b+c #默认参数形式 8 print(func3(2,3)) #108 9 10 func4=lambda *args:args #可变参数 11 print(func4(100,'abc','009')) #(100, 'abc', '009') 12 13 func5=lambda **kwargs:kwargs #可变参数 14 print(func5(name='tom',age=18)) #{'name': 'tom', 'age': 18}
3、lambda的应用
带判断表达式的lambda:
1 func=lambda a,b:(a+b) if a>b else (a-b) 2 print(func(2,3)) #-1
在列表排序方法sort的参数中直接调用lambda可以极大的减少代码量:
1 student=[{'name':'Tom','age':18,'class':'001'}, 2 {'name':'Jack','age':20,'class':'003'}, 3 {'name':'Lucy','age':24,'class':'009'}] 4 key=lambda x:x['name'] 5 print(key(student[1])) #Jack这里只是为了看清楚下面sort的参数是什么 6 7 student.sort(key=lambda x:x['name']) #这里x指代的就是student列表中的每一项,返回值是每一项字典中的name 8 print(student) 9 #[{'name': 'Jack', 'age': 20, 'class': '003'}, {'name': 'Lucy', 'age': 24, 'class': '009'}, {'name': 'Tom', 'age': 18, 'class': '001'}] 10 11 student.sort(key=lambda x:x['name'],reverse=True) 12 print(student) 13 #[{'name': 'Tom', 'age': 18, 'class': '001'}, {'name': 'Lucy', 'age': 24, 'class': '009'}, {'name': 'Jack', 'age': 20, 'class': '003'}] 14 15 student.sort(key=lambda x:x['age']) 16 print(student) 17 #[{'name': 'Tom', 'age': 18, 'class': '001'}, {'name': 'Jack', 'age': 20, 'class': '003'}, {'name': 'Lucy', 'age': 24, 'class': '009'}]