python lambda
在python中,如果想要创建函数需要使用关键字def,而如果想要创建匿名函数,就需要使用lambda。
lambda创建的函数和def创建的函数有什么区别?
- def创建的函数是有名称的,而lambda没有
- lambda会创建一个函数的对象,但是却不会把对象给一个标识符,而def 会把函数对象赋值给一个变量
- def 是一条语句,而lambda它只是一个表达式
y = lambda x:print(x)
y(10) # 10
例如上面,通过lambda创建了一个表达式,x相当于形参,代码整体来看非常的简单高效。
通常情况下,lambda 可以直接作为列表或者字典的成员,如下:
# 创建一个列表,将通过表达式lambda创建的表达式当做列表中的元素
list_test = [lambda a:a*3,lambda b:b*4]
# 给列表中设置值
x = list_test[0](3)
y = list_test[1](2)
print(x,y) # 9 8
那么相同的操作,在列表中,只能够使用lambda,没有办法使用def替代,因为def是语句,在列表中只能够是表达式。而lambda表达式在“:”之后只能有一个表达式,通常情况下,return语句能够返回的可以放在lambda后面,不能够返回的同样也不能够放在其后。因此,最好不要将if或者for这样的语句放在lambda表达式的后面,lambda最好只用来定义一些简单的函数。
时间: 2024-11-14 22:02:42