更优雅的方式来做到这一点?

时间:2016-01-24 20:30:03

标签: python python-3.x

非常简单的代码片段,但它似乎只是冗长的方式。有没有更好的方法在一行中做到这一点?只是出于好奇。它在python 3.5中。

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

4 个答案:

答案 0 :(得分:4)

您可以在一行中使用if / else语句,如下所示:

predictedClassification = 1 if predictedClassification >= 0.5 else 0

答案 1 :(得分:3)

您可以将其写为:

predictedClassification = 1 if predictedClassification >= 0.5 else 0

答案 2 :(得分:3)

使用if-else conditional expression

predictedClassification = 1 if predictedClassification >= 0.5 else 0

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

predictedClassification = 10

predictedClassification = 1 if predictedClassification >= 0.5 else 0

print(predictedClassification)
1

答案 3 :(得分:1)

有一个旧的BASIC程序员用于舍入的技巧:

rounded = int(float_num + 0.5)

这取决于你的int函数只是截断小数点。对于Python和您的具体示例:

predictedClassification = int(predictedClassification + 0.5)

注意:小心(并运行测试)关于否定。如果您的predictClassification为负数,是否要将零/截断为零或从零开始?也就是说,-.5的PC变为-1还是0?这是一个域名问题(意味着您必须决定),但语言可能会让您感到复杂。