Вы можете использовать not
:
not indexTag
, который дает вам логическое (True
или False
), но Python булевы являются подклассом int
и есть целое значение (False
является 0
, True
- 1
). Вы можете превратить это обратно в целое число с int(not indexTag)
, но если это просто логическое значение, зачем беспокоиться?
Или вы можете отнять от 1; 1 - 0
является 1
и 1 - 1
является 0
:
1 - indexTag
или вы могли бы использовать условное выражение:
0 if indexTag else 1
Демо:
>>> for indexTag in (0, 1):
... print 'indexTag:', indexTag
... print 'boolean not:', not indexTag
... print 'subtraction:', 1 - indexTag
... print 'conditional expression:', 0 if indexTag else 1
... print
...
indexTag: 0
boolean not: True
subtraction: 1
conditional expression: 1
indexTag: 1
boolean not: False
subtraction: 0
conditional expression: 0
Я не знаю, если поставить в качестве ответа, но '[1,0] [indexTag]' работает хорошо –
Это имеет то преимущество, (или demerit) повышения исключения IndexError, если какое-либо недопустимое целое когда-либо пытается свернуть сторону. – nigel222
Не могли бы вы дать еще какой-нибудь контекст? Что вы на самом деле делаете * с результатом? – jonrsharpe