之前我们给大家讲函数也不再少数,往期里也经常在函数内容里给大家拓展新的函数,不知道大家都没有理解呢?小编知道函数是大家的基础,在浏览代码的时候,经常注意这块内容,今天也不例外,下面给大家带来一个好玩的函数——匿名函数,一起来看下吧~
匿名函数
匿名函数不需要显示地定义函数名,使用【lambda + 参数 +表达式】的方式。
lambda 函数
lambda 函数的形式
lambdaargument1,argument2,...argumentN:expression
套入函数,使用lambda
square=lambdax:x**2 square(3) 9 lambda返回的一个函数对象
注意:lambda 和def 的区别
lambda 是一个表达式,def 是一个语句
[(lambdax:x*x)(x)forxinrange(10)] #输出 [0,1,4,9,16,25,36,49,64,81]
lambda 可以用作函数的参数,def 不能
l=[(1,20),(3,0),(9,10),(2,-1)] l.sort(key=lambdax:x[1])#按列表中元祖的第二个元素排序 print(l) #输出 [(2,-1),(3,0),(9,10),(1,20)]
lambda 是只有一行的简单表达式
squared=map(lambdax:x**2,[1,2,3,4,5]) 如果不用lambda,你用def就需要多写好多行 defsquare(x): returnx**2 squared=map(square,[1,2,3,4,5])
在tkinter 中实现的简单功能
fromtkinterimportButton,mainloop button=Button( text='Thisisabutton', command=lambda:print('beingpressed'))#点击时调用lambda函数 button.pack() mainloop()
主要你按压就出现being pressed,你用def就是下面的样子。
fromtkinterimportButton,mainloop defprint_message(): print('beingpressed') button=Button( text='Thisisabutton', command=print_message)#点击时调用lambda函数 button.pack() mainloop()
使用def 要写好多行,多定义一个函数。
好了,以上就是详细的匿名函数的使用了哦~如需了解更多python实用知识,点击进入PyThon学习网教学中心。