- lambda后面跟一个或多个参数,紧跟一个冒号,以后是一个表达式。冒号前是参数,冒号后是返回值
- lambda表达式可以出现在Python语法不允许def出现的地方
- lambda表达式返回一个值
- lambda用来编写简单的函数,不会再重复利用的函数
1、作为表达式
add_func = lambda x,y : x+y # x,y相当于传参,x+y是函数体,返回值就是x+y的结果
# 变量接收lambda返回值
sum1 = add_func(2,3)
print(sum1)
sum2 = add_func("hello","python")
print(sum2)
2、作为函数的嵌套部分
def get_line(a,b):
return lambda x:a*x+b
y = get_line(2,3)
# 执行lambda表达式
print(y(4))
3、不带参数的lambda
bb = lambda:"who are you"
print(bb()) # 调用不用传入参数
4、用于选择函数
list_func = [lambda x:x+10, lambda y:y+100, lambda z:z+1000] #其中的每个元素都是一个小函数,可以随时调用
# 定义空列表
result = []
# 循环将list_func中的元素计算后加入空列表
for r in list_func:
result.append(r(40)) # 加40
print(result) # [50, 140, 1040]
5、lambda表达式作为参数:max函数与lambda表达式操作字典
sorce = {"语文":78,"数学":101,"英语":99}
mark_func = lambda x:sorce[x] # lambda传入参数x,返回字典的value
max_mark = max(sorce,key=mark_func)
print(mark) # 数学
可以用这个函数,加上max来实现求取经过函数后的最大值所对应的自变量x
6、lambda表达式:max函数与lambda表达式操作列表
list1 =[22,43,67,54,88]
func = lambda x:list1[x]
max_item = max(range(len(list1)),key=func)
print(max_item)