Python匿名函数

来源:互联网 发布:化工与人工智能 编辑:程序博客网 时间:2024/06/05 19:05

在python中除了def可以创建函数对象外,还提供了另外一种方式,即匿名函数。

匿名函数又叫lambda表达式,由于其返回的是一个函数而非被函数赋值的变量名,故称为匿名函数。匿名函数很短小,一般书写形式为lambda 参数列表,后跟冒号和表达式。如:lambda x,y: x+y (求x,y的和)


为何使用匿名函数


一般来说,匿名函数起到了函数速写的作用。当需要一个小型函数,且打算一次性使用时,匿名函数就派上用场了。

如下,给下面的动物列表按照给定条件排序。


>>> animals=['cat','dog','pig','panda','tiger','wolf']
>>> sorted(animals,key=lambda animal:animal[::-1])
['panda', 'wolf', 'pig', 'dog', 'tiger', 'cat']


lambda虽然简短,但由于其在句法上的限制,不能自由使用。一般出现在嵌套函数的行间,或者当作参数传递给高阶函数。

总而言之,lambda和def一样,都是用来构建函数对象的。不同的是,lambda只是一种语法糖,在某些特殊的场合下才适合使用。