匿名函数
为了解决那些功能很简单的要求而设计的一句话函数
关键字:lambda
def calc(n): return n**n print(calc(10)) #换成匿名函数: cacl = lambda n: n**n print(cacl(10))
格式说明:函数名 = lambda 参数:返回值
◆参数可以有多个,用逗号隔开
◆匿名函数只能写一行,且逻辑执行结束后的内容就是返回值
◆返回值和正常函数一样可以是任意数据类型
◆匿名函数再和其他函数合作的时候真的会匿名(合作的函数有min max map filter sorted)
栗子1:求dic = {'k1':10,'k2':100,'k3':20}中值最大的key值
dic = {'k1':10,'k2':100,'k3':20} print(max(dic,key = lambda k:dic[k]))
#普通法: l = [1,2,66,88,0,59,3,9,23] def m_num(x): return x>10 ret = filter(m_num,[1,2,66,88,0,59,3,9,23]) for i in ret: print(i) #匿名函数法: res = filter(lambda x:x>10,[1,2,66,88,0,59,3,9,23]) for i in res: print(i)
res = map(lambda x:x*x,[1,2,3,4,5]) for i in res: print(i)