lambda(也叫匿名函数) 参数列表 : 表达式
1.lambda表达式的参数可有可⽆,函数的参数在lambda表达式中完全适⽤。
2.lambda表达式能接收任何数量的参数但只能返回⼀个表达式的值。
fn1 = lambda: 1
#注意:直接打印lambda表达式,输出的是此lambda的内存地址
print(fn1) #<function <lambda> at 0x000001F2CCF70AE8>
print(fn1()) #1
#1.lambda的参数形式--⽆参数
fn1 = lambda: 1
print(fn1()) #1
#2.⼀个参数
fn1 = lambda a: a
print(fn1('hello world')) #hello world
#3..默认参数
fn1 = lambda a, b, c=10000: a + b + c
print(fn1(10, 20)) #10030
#4.可变参数:*args
fn1 = lambda *args: args
#注意:这⾥的可变参数传⼊到lambda之后,返回值为元组。
print(fn1(10, 20, 30)) #(10, 20, 30)
#4.可变参数:**kwargs
fn1 = lambda **kwargs: kwargs
print(fn1(name='python', age=22))#{'name': 'python', 'age': 22}
#5.带判断的lambda
fn1 = lambda a, b: a if a > b else b
print(fn1(1, 2)) #2
students = [
{'name': 'jch', 'age': 22, 'id': 1},
{'name': '小王', 'age': 23, 'id': 3},
{'name': '小李', 'age': 15, 'id': 2}
]
#升序
students.sort(key=lambda var1: var1['age'])
#[{'name': '小李', 'age': 15, 'id': 2}, {'name': 'jch', 'age': 22, 'id': 1}, {'name': '小王', 'age': 23, 'id': 3}]
print(students)
#降序
students.sort(key=lambda var1: var1['age'], reverse=True)
#[{'name': '小王', 'age': 23, 'id': 3}, {'name': 'jch', 'age': 22, 'id': 1}, {'name': '小李', 'age': 15, 'id': 2}]
pr