评估False为-1和True为1的最佳方法是什么?

时间:2018-12-17 19:43:28

标签: python

我有一个想要(Result for False) == -1*(Result for True)的公式。我可以用哪种快速(单行)方式将False表示为-1,将True表示为1?当然,如果/否则会起作用。我想知道最简洁的表达方式。

4 个答案:

答案 0 :(得分:7)

使用三元表达式:

result = 1 if bool else -1

答案 1 :(得分:3)

您可以这样做:

a = False
b = True

print(2 * a - 1)
print(2 * b - 1)

输出

-1
1

答案 2 :(得分:2)

如果该值位于my_value中,则可以写入1 if my_value else -1

答案 3 :(得分:1)

除了所有if else答案之外,这是一种有趣(但更隐含)的方式:

result = -1 + 2*bool

之所以起作用,是因为正如@ juanpa.arrivillaga在注释部分中所述,bool是Python中int的子类,您实际上可以想到TrueFalse定义为无处不在的整数(1和0)。这就是True + True产生2

的方式