考虑到我提供了一个整数变量,下面怎么能变得更紧凑(也许使用布尔)?
indexTag = 0 # or 1
1 if indexTag == 0 else 0
答案 0 :(得分:7)
您可以使用not
:
not indexTag
它给你一个布尔(True
或False
),但是Python布尔值是int
的子类,并且有一个整数值({{ 1}}是False
,0
是True
)。您可以将其转换回1
的整数,但如果这只是一个布尔值,为什么还要麻烦?
或者你可以减1; int(not indexTag)
为1 - 0
,1
为1 - 1
:
0
或者您可以使用条件表达式:
1 - indexTag
演示:
0 if indexTag else 1
答案 1 :(得分:4)
或者您可以使用^
(XOR),只需:
indexTag = 1 ^ indexTag
这实现了你想要的东西,因为那是XOR所做的:
+---------------+
| Input | Output|
+---+---+-------+
| A | B | |
+---+---+ |
| 0 | 0 | 0 |
| 0 | 1 | 1 | <
| 1 | 0 | 1 |
| 1 | 1 | 0 | <
+---+---+-------+