1. Lambda应用场景
如果一个函数有一个返回值,并且只有一句代码,可以使用lambda简化
2. lambda语法
注意事项:
lambda表达式的参数可有可无,函数的参数在lambda表达式中完全适用lambda表达式能接受任何数量的参数但只能返回一个表达式的值
lambda 参数列表
:表达式
3. 体验lambda
def fn1():
return 100
fn2
= lambda:100
print(fn2
)
print(fn2
())
4. lambda参数形式
4.1 无参数
fn1
= lambda:100
print(fn1
())
4.2 一个参数
fn1
= lambda a
: a
print(fn1
("hello"))
4.3 默认参数(缺省参数)
fn1
= lambda a
,b
,c
=100:a
+b
+c
print(fn1
(1,2))
4.4 参数*args
fn1
= lambda *args
:args
print(fn1
(1,2,3))
4.5 参数**kwargs
fn1
= lambda **kwargs
: kwargs
print(fn1
(name
='tom',age
=20))
5. lambda的应用
5.1 带判断的lambda
fn1
= lambda a
,b
:a
if a
>b
else b
print(fn1
(1,2))
5.2 列表数据按字典的key的值排序
列表的sort中的参数key就收一个函数,这个函数用于从每个元素中提取一个用于比较的关键字。默认值为None。
students
= [{'name':'tom','age':20},
{'name':'jack','age':10},
{'name':'mike','age':30}]
students
.sort
(key
=lambda x
:x
['name'])
students
.sort
(key
=lambda x
:x
['name'],reverse
=True)