1、lambda的应用场景
如果一个函数有一个返回值,并且只有一句代码,可以使用lambda简化。
2、lambda语法
lambda 参数列表:表达式
注意:lambda表达式参数可有可无,函数的参数在lambda表达式中完全适用。
lambda函数能接收任何数量的参数但只能返回一个表达式的值。
3、体验
# 需求:函数 返回值100 # 1.函数 def fn1(): return 100 # <function fn1 at 0x000001F62A913E20> # print(fn1) # 100 # print(fn1()) result = fn1() # 100 print(result) # 2. lambda 匿名函数 # lambda 参数列表:表达式 fn2 = lambda : 100 # lambda内存地址 print(fn2) print(fn2()) # 100 返回值 调用函数
注意:直接打印lambda表达式,输出的是此lambda的内存地址
4、计算a+b
# 需求:计算任意两个数字的累加和 # 1. 函数 def add(a,b): return a + b result = add(1,3) print(result) # 2. lambda fn1 = lambda a, b: a + b print(fn1(3, 4))
5、lambda的参数形式
5.1 无参数
fn1 = lambda: 100 print(fn1()) # 100
5.2 一个参数
# 一个参数 fn1 = lambda a: a print(fn1('hello word')) # hello word
5.3 默认参数
# 默认参数 fn2 = lambda a, b, c= 100: a + b + c # print(fn2(10, 30)) # 140 print(fn2(10, 20, 40))
注意:默认参数如果不传值会使用默认的值,如果传数据了就会覆盖原有的默认值
5.4 可变参数:*args(接受不定长的位置参数)
# 可变参数 fn3 = lambda *args: args print(fn3(10, 30, 50)) # (10, 30, 50)
注意:这里的可变参数传入到lambda之后,返回值为元组
5.5 可变参数:**kwargs(接受不定长的关键字参数)
# 可变参数 **kwargs fn4 = lambda **kwargs: kwargs print(fn4(name='python')) # {'name': 'python'}
注意:这里的可变参数传入到lambda之后,返回值为字典
6、lambda的应用
6.1 带判断的lambda
# lambda 两个数字比大小,谁大返回谁 fn1 = lambda a, b: a if a > b else b print(fn1(1000, 500)) # 1000
6.2 列表数据按字典key的值排序
# lambda 两个数字比大小,谁大返回谁 # fn1 = lambda a, b: a if a > b else b # print(fn1(1000, 500)) # 1000 student = [ {'name': 'lisi', 'age': 20}, {'name': 'zhang', 'age': 30}, {'name': 'hong', 'age': 40} ] # sort(key=lambda..., reverse=布尔类型数据) # 1. name key对应的值进行升序排序 student.sort(key=lambda x: x['name']) print(student) # 2. name key对应的值进行降序排序 student.sort(key=lambda x: x['name'], reverse=True) print(student) # 3. age key对应的值进行升序排序 student.sort(key=lambda x: x['age']) print(student)
标签:name,fn1,匿名,参数,print,100,表达式,lambda From: https://www.cnblogs.com/yz-b/p/16743477.html