我们来看看两个功能相似的关键字。你不会把两个没用的吗?
定义说明
我先给你举个例子。
def add(x, y):
return x + y
print(add(3,5))
结果如下:
8
函数是用 def 关键字编写的。
add 是函数的名称,要传递的参数定义为 x 和 y。
它有一个返回两个值相加结果的函数。
如果将 3 和 5 作为参数传递给以这种方式创建的 add 函数,则可以看到结果为 8。
拉姆达描述
让我们创建与上面相同的函数。
add = lambda x,y: x+y
print(add(2,3))
结果如下:
5
它使用关键字 lambda 接收 x 和 y 作为参数,并返回两个值相加的结果。
默认情况下,Lambda 会创建未命名的函数。
你可以在一行中写得更简洁。
另外,不要使用 return 关键字。
它也可以通过将其分配给变量以与函数相同的方式使用。
如何使用它
让我们看另一个使用示例来帮助您理解。
temp = [1,2,3,4,5]
result = list(filter(lambda x:x>2, temp))
print(result)
结果如下:
[3,4,5]
这是一个使用过滤器方法从元素为 1 到 5 的数组中仅选择大于 2 的值的示例。
lambda 接收一个值,确定它是否大于 2,并返回 True 或 False 布尔值。
filter 方法将一个 lambda 分配给第一个参数,将一个数组分配给第二个参数。
它遍历数组并产生一个结果,如果它大于 2 则保留该值,否则将其排除。
filter得到的结果用list方法以数组的形式创建并存储在result变量中。
让我们用一个函数创建完全相同的函数。
temp = [1,2,3,4,5]
def comp(x):
return x > 2
result = list(filter(comp, temp))
print(result)
结果如下:
[3,4,5]
你如何实现它并不重要,但在这个例子中,lambda 更简洁,对吧?
事实上,如果你看一下类型,def 和 lambda 实现都与函数相同。
因此,您可以将其视为 lambda 包含在函数中的概念。
总之,最好使用 def 关键字来创建一个需要重用的函数,而当你想创建一个简单的一次性函数时,使用 lambda 会更好。
此帖子有 2 条回复。
受过教育的人很难了解这个话题,但是,你似乎知道你在说什么!谢谢
谢谢你的拜访。我希望这篇文章对你有帮助!