这两个 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
。
我正在研究与大数据相关的在线 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
。