Python— 匿名函数
Posted TreeSir
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python— 匿名函数相关的知识,希望对你有一定的参考价值。
匿名函数
匿名函数:为了解决那些功能很简单的需求而设计的 “一句话函数”
#初始代码
def calc(n):
return n**n
print(calc(10))
#换成匿名函数
calc = lambda n:n**n
print(calc(10))
上图是对calc这个匿名函数的分析
# 关于匿名函数格式的说明
函数名 = lambda 参数 :返回值(相当于函数体)
# 参数可以有多个,用逗号隔开
# 匿名函数不管逻辑多复杂,只能写一行,且逻辑执行结束后的内容就是返回值
# 返回值和正常的函数一样可以是任意数据类型
由此可见:
匿名函数并不是真的没有名字。
匿名函数的调用和正常的调用也没有什么分别。
# 把以下函数变成匿名函数 def add(x,y): return x+y # 匿名函数 add = lambda x,y : x+y
上面是匿名函数的函数用法。
除此之外,匿名函数也不是浪得虚名。在和其他功能函数合作的时候~~~它真的可以匿名
l=[3,2,100,999,213,1111,31121,333] print(max(l)) dic={\'k1\':10,\'k2\':100,\'k3\':30} print(max(dic)) print(dic[max(dic,key=lambda k:dic[k])]) # 执行结果: 31121 k3 100 Process finished with exit code 0
res = map(lambda x:x**2,[1,5,7,4,8]) for i in res: print(i) # 执行结果 1 25 49 16 64
res = filter(lambda x:x>10,[5,8,11,9,15]) for i in res: print(i) # 执行结果 11 15
\'\'\' 1.下面程序的输出结果是: d = lambda p:p*2 t = lambda p:p*3 x = 2 x = d(x) x = t(x) x = d(x) print x \'\'\' \'\'\' 2.现有两元组((\'a\'),(\'b\')),((\'c\'),(\'d\')),请使用python中匿名函数生成列表[{\'a\':\'c\'},{\'b\':\'d\'}] \'\'\' \'\'\' 3.以下代码的输出是什么?请给出答案并解释。 def multipliers(): return [lambda x:i*x for i in range(4)] print([m(2) for m in multipliers()]) 请修改multipliers的定义来产生期望的结果。 \'\'\'
# 第一题 24 Process finished with exit code 0 # 第二题 t1 = ((\'a\'), (\'b\')) t2 = ((\'c\'), (\'d\')) t3 = zip(t1, t2) print(list(lambda t : {t[0] : t[1]}, t3)) # 第三题 # 答案一 test = lambda t1,t2 :[{i:j} for i,j in zip(t1,t2)] print(test(t1,t2)) # 答案二 print(list(map(lambda t:{t[0]:t[1]},zip(t1,t2)))) # 答案三 print([{i:j} for i,j in zip(t1,t2)])
以上是关于Python— 匿名函数的主要内容,如果未能解决你的问题,请参考以下文章