lambda函数的用法

Python中,lambda函数也叫匿名函数,及即没有具体名称的函数,它允许快速定义单行函数,类似于C语言的宏,可以用在任何需要函数的地方。这区别于def定义的函数。

一、lambda与def的区别:

1)def创建的方法是有名称的,而lambda没有。
2)lambda会返回一个函数对象,但这个对象不会赋给一个标识符,而def则会把函数对象赋值给一个变量(函数名)。
3)lambda只是一个表达式,而def则是一个语句。
4)lambda表达式” : “后面,只能有一个表达式,def则可以有多个。
5)像if或for或print等语句不能用于lambda中,def可以。
6)lambda一般用来定义简单的函数,而def可以定义复杂的函数。
7)lambda函数不能共享给别的程序调用,def可以。
注意:lambda函数主要用作一些特定函数或方法的参数,一般情况下,建议使用def定义的普通函数

二、lambda语法格式:

<函数名> = lamb <参数>:<表达式>

即等价于:

def  <函数名>(<参数>):
                   <函数体>
                   return <返回值>

如下示例:

#单个参数
>>> g = lambda x : x ** 2
>>> print g(3)
9
#多个参数的
>>> g = lambda x, y, z : (x + y) ** z
>>> print g(1,2,2)
9

lambda表达式会返回一个函数对象,如果没有变量接受这个返回值的话,它很快就会被丢弃。也正是由于lambda只是一个表达式,所以它可以直接作为list和dict的成员。
小结:
lambda 并不会带来程序运行效率的提高,只会使代码更简洁
lambda 是为了减少单行函数的定义而存在的
如果可以使用for…in…if来完成的,坚决不用lambda
参考博客:https://blog.csdn.net/SeeTheWorld518/article/details/46959593

猜你喜欢

转载自blog.csdn.net/holiday0/article/details/89282779
今日推荐