1、在python中,函数是一个被命名的、独立完成特定功能的一段代码,并可能给调用它的程序一个返回值。
①普通函数:有名函数
②匿名函数:为简化程序代码,可定义匿名函数
2、lambda表达式的应用场景:若函数有一个返回值,并且只有一行简单的代码,可使用lambda简化
3、lambda表达式的基本语法
变量 = lambda 函数参数:表达式(函数代码+return返回值)
#调用变量
变量()
#注意只能返回一个值,若要返回多个值,则封装到列表、字典等数据类型中
4、编写lambda表达式
(1)定义一个函数,经过一系列操作,返回100(无参数):
def f1():
return 100
print(f1)#代表f()函数在内存中的地址
print(f1())#代表找到f()函数的地址并立即执行
lambda简化:
f2=lambda:100
print(f2)
print(f2())
(2)求两数之和(有参数):
def f1(num1,num2):
return num1+num2
print(f1(10,20))
lambda简化:
f2 = lambda num1,num2 : num1 + num2
print(f2)
print(f2())
6、lambda表达式相关应用
①带默认值的:
f = lambda a,b,c = 100: a + b + c #c为默认值
print(f(10,20))
print(f(10,20,30))#此时30则将100覆盖,c等于30
②可变参数args(不定长参数):
f1 = lambda *args : args
print(f1(10,20,30,40))#函数识别的是*
#返回(10, 20, 30, 40)
③关键字参数**kwargs:
f2 = lambda **kwargs : kwargs#返回的是字典
print(f2(dict1=10,dict2=20,dict3=30))
#返回:{'dict1': 10, 'dict2': 20, 'dict3': 30}
④带if判断的lambda表达式(求两数的最大值):
f = lambda a,b:a if a > b else b
print(f(10,20))
⑤列表数据+字典数据排序
students = [
{'name':'tom' ,'age':20},
{'name':'jack' ,'age':10},
{'name':'jane' ,'age':15}
]
#按name值升序排列
students.sort(key=lambda x:x['name'])
print(students)
#按name值降序排列
students.sort(key=lambda x:x['name'],reverse = True)
print(students)
#按age值升序排列
students.sort(key=lambda x:x['age'])
print(students)