匿名函数
匿名函数:为了解决那些功能很简单的需求而设计的一句话函数
格式 : 函数名 = lambda 参数:返回值
关键字 lambda,而且不允许换行,切冒号后面的语句必须为一个可执行的逻辑
参数可以多个,用逗号隔开
匿名函数不管逻辑多复杂,只能写一行,切逻辑执行结束后的内容就是返回值
返回值和正常的函数一样可以是任意数据类型
带key的内置函数:min max filter map sorted 均可以与lambda使用
#一个自定义函数 def calc(n): return n**n print(calc(10)) # 转换为匿名函数 calc = lambda n:n**n print(calc(10)) # 自定义一个简单函数 def add(x,y): return x+y add = lambda x,y:x+y print(add(1,2))
#需求,在一个字典里取最大的Value,返回对应的key # dic = {'k1':10,'k2':100,'k3':30} #def func(k): # return dic[k] #转换为匿名函数 #func = lambda k:dic[k] #print(max(dic,key=func)) print(max(dic,key = lambda k:dic[k]))
# 解释一下代码 res = filter(lambda x: x > 10, [5, 8, 11, 9, 15]) for i in res: print(i) #解析:筛选列表中大于10的数字并答应 # 思路:先将filter拆解,因为会执行for循环将可迭代里的元素一个个取出来:filter(函数名,可迭代的) # 函数名 = lambda x: x > 10 可迭代的=[5, 8, 11, 9, 15] # 匿名函数再转换 #def func(x): # return x >10 l = [5, 8, 11, 9, 15] def func(x): return x > 10 funcc = lambda x: x > 10 ress = filter(func, l) for i in ress: print(i)
浙公网安备 33010602011771号