2016-01-24 40 views
2

非常简单的一段代码,它只是看起来很冗长。有没有更好的方法来做到这一点?只是出于好奇。它在python 3.5中。更优雅的方式来做到这一点?

if predictedClassification >= 0.5: 
    predictedClassification = 1 
else 
    predictedClassification = 0 

回答

3

你可以写为:

predictedClassification = 1 if predictedClassification >= 0.5 else 0 
+0

自您首次发布以来,我会接受你的。 –

4

您可以使用if/else声明在一个行,如下所示:

predictedClassification = 1 if predictedClassification >= 0.5 else 0 
3

随着if-else conditional expression

predictedClassification = 1 if predictedClassification >= 0.5 else 0 

如果表达式为True,则结果等于1,否则为0。

predictedClassification = 10 

predictedClassification = 1 if predictedClassification >= 0.5 else 0 

print(predictedClassification) 
1 
1

有一个古老的Basic程序员招四舍五入:

rounded = int(float_num + 0.5) 

这依赖于你的int功能只是斩去小数点。在Python的情况下,你的具体的例子:

predictedClassification = int(predictedClassification + 0.5) 

注:小心(和运行测试)关于底片。如果您的预测分类为负值,您是否想要向零或远离零进行舍入/截取?也就是说,-.5的PC变成-1还是0?这是一个域问题(意味着您必须决定),但语言可能会让您的事情变得复杂。

+0

我正在考虑通过添加'0.5'来提供一个'int'四舍五入的答案,以放弃条件。但后来我想如果这个数字大于等于1.5,那么它会变成2或更大,而不是1。这和你在笔记中提到的有什么不同。虽然答案很好。 –

相关问题