#lambda表达式形式:lambda arguments1,arguments2,...argumentsN:expression using arguments f=lambda x,y,z:x+y+z print(f(2,3,4)) #9 #默认参数也能够在lambda参数中使用,就像在def中使用中一样 x=(lambda a='fee',b='fie',c='foe':a+b+c) print(x()) #feefiefoe def knights(): title='sir' action=(lambda x:title+' '+x) return action a=knights() print(a('name')) #sir name #lambda起到了一种函数速写的作用,允许在使用的代码内嵌入一个函数的定义,当需要小段执行代码编写进def语句从语法上不能编写进的地方时, #lambda表达式作为def的一种速写来说是最为有用的 l=[lambda x:x**2, lambda x:x**3, lambda x:x**4] for f in l: print(f(2)) #4 8 16 key='got' result={'already':(lambda :2+2),'got':(lambda :2*4),'one':(lambda :2**6)}[key]() print(result) #8 lower=(lambda x,y:x if x<y else y) print(lower('bb','aa')) #aa print(lower('aa','bb')) #aa import sys showall=lambda x:list(map(sys.stdout.write,x)) showall(['a','b','c']) #abc showall1=lambda x:[sys.stdout.write(i) for i in x] showall1(['a','b','c']) #abc #嵌套lambda表达式和作用域 #lambda表达式能够获取任意上层lambda中的变量名 def action(x): return (lambda y: x+y) l=action(1) print(l(2)) #3 action1=(lambda x:lambda y:x+y) a=action1(11) print(a(22)) #33 #常用于回调处理器 def onPress(s): print(s) import sys from tkinter import Button, mainloop #x=Button(text='Press me', command=lambda :sys.stdout.write('spam\n')) x=Button(text='Press me', command=lambda : onPress('aaaaaa')) x.pack() mainloop()
python 匿名函数 lambda
猜你喜欢
转载自blog.csdn.net/weixin_37016700/article/details/78834905
今日推荐
周排行