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