Possible Duplicate:
Is False == 0 and True == 1 in Python an implementation detail or is it guaranteed by the language?
I noticed today that the following works using python 2.6 (Cpython)...
>>> a=[100,200]
>>> a[True]
200
>>> a[False]
100
Is this portable to other python implementations (e.g. is True
/False
guaranteed to inherit from int? Is True
guaranteed to evaluate to 1 instead of some other non-zero number?) Is there any situation where this would be useful? It seems like it could be used as another form of a ternary operator, but I don't know how much is gained there...