一、语法
作用:简化函数代码
格式:lambda 参数列表 :表达式
P.s:
- lambda表达式参数可有可无,参数写法同函数
- lambda函数能接收任何数量的参数但只能返回一个表达式的值
def func0(): return 100 func = lambda: 100 # lambda本质是一个匿名函数 print(func0) # <function func0 at 0x000001F7FE355160> print(func) # <function <lambda> at 0x000001E20BAD5160> print(func0()) # 100 print(func()) # 100
二、参数形式
# 无参数 f1=lambda:100 print(f1()) # 100 # 一个参数 f2=lambda a:a print(f2('Hello!')) # Hello! # 默认参数 f3=lambda a,b,c=300:a+b+c print(f3(100,200)) # 600
# 可变参数*args,返回元组 f4=lambda *args:args print(f4(100,200,300)) # (100, 200, 300)
# 可变参数**kwargs,返回字典 f5=lambda **kwargs:kwargs print(f5(name='Tom',age=10)) # {'name': 'Tom', 'age': 10}
三、应用
# 1、判断 func1 = lambda a,b: a if a>b else b print(func1(2,3)) # 3 # 2、按照字典key排序 students = [ {'name':'Alice','age':18}, {'name':'Bill','age':20}, {'name':'Cindy','age':16} ] # 2.1、按照age升序排序 students.sort(key=lambda x:x['age']) print(students) # [{'name': 'Cindy', 'age': 16}, {'name': 'Alice', 'age': 18}, {'name': 'Bill', 'age': 20}] # 2.2、按照name降序排序 students.sort(key=lambda x:x['name'],reverse=True) print(students) # [{'name': 'Cindy', 'age': 16}, {'name': 'Bill', 'age': 20}, {'name': 'Alice', 'age': 18}]