我有一个想要(Result for False) == -1*(Result for True)
的公式。我可以用哪种快速(单行)方式将False表示为-1,将True表示为1?当然,如果/否则会起作用。我想知道最简洁的表达方式。
答案 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
的子类,您实际上可以想到True
和False
定义为无处不在的整数(1和0)。这就是True + True
产生2