这两个 python 实现之间的区别?

Difference between these two python implementations?

我正在研究与大数据相关的在线 MOOC,pyspark.I 遇到了一个函数的这两个实现,然后传递给 filter() 转换。

def ten(value):
"""Return whether value is below ten.

Args:
    value (int): A number.

Returns:
    bool: Whether `value` is less than ten.
"""
if (value < 10):
    return True
else:
    return False

这个函数的第二种实现方式很简单,

def ten(value): return value < 10

或等效地用作 filter() 转换中的 lambda 函数

lambdaRDD = subRDD.filter(lambda x: x < 10)

现在,我的问题是第一个实现 return 是一个布尔值,第二个实现 return 是一个小于 10 的输入数字。 现在,据我所知,过滤器转换 returns 那些在执行函数时传递给它的输入,return TRUE.Then 函数的第二个实现如何与过滤器转换?因为这个 return 是一个数字? 如果我对过滤器函数或函数 return 类型的理解有误,请告诉我。

ten 函数的两种实现是等效的。第一个使用完整的 if 块,第二个使用单行,但 两者做同样的事情:return 一个布尔值 。 lambda 函数也是如此,它的作用相同,如果数字小于 10,则 true,否则 false