繁体   English   中英

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

[英]Difference between these two python implementations?

我正在研究与大数据和pyspark有关的在线MOOC。我遇到了函数的这两种实现,然后将其传递给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)

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

ten功能的两个实现是等效的。 第一个使用完整的if块,第二个使用单行,但是两者都相同:返回boolean lambda函数也是true如果数字小于10,则结果为false否则为false

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM