gpt4 book ai didi

python - python lambda 和常规函数之间一定有区别吗?

转载 作者:太空宇宙 更新时间:2023-11-04 00:09:10 25 4
gpt4 key购买 nike

我尝试了 2 个片段来找出 python lambda 和常规函数之间的区别。

这一个得到了预期的结果。

b = range(6)
def greater_than2(b):
if b > 2:
return b

print(list(filter(lambda x: x > 2, b)))
print(list(filter(greater_than2, b)))

两个打印都给出 [3, 4, 5]。

但是这个有一些东西

b = range(6)

def less_than2(b):
if b < 2:
return b

print(list(filter(lambda x: x < 2, b)))
print(list(filter(less_than2, b)))

我得到了以下输出

[0, 1]
[1]

那么,lambda 函数和 less_than2 函数有什么区别?

最佳答案

你们的功能没有可比性,greater_than2需要返回一个 bool 值:

def greater_than2(b):
return b > 2

上面定义的函数将返回 True什么时候b > 2 , 或 False什么时候b <= 2 .

您的常规函数​​返回 b .让我们考虑一下您的第二个示例会发生什么,您会在其中看到差异:

b = 0 : less_than2返回 0
b = 1 : less_than2返回 1
b = 2 : less_than2返回 None
...
b = 5 : less_than2返回 None

请注意您的 if条件不满足,一个return永远不会遇到语句,因此您的函数将返回 None .这些返回值中唯一的“Truthy”值是 1作为bool(0)bool(None)评估为 False .

关于python - python lambda 和常规函数之间一定有区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53066780/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com