Is Python's bool sorting defined?

Question:

Is the ordering of True and False well defined in Python, or is it left as an implementation detail?

From the console, I’m seeing False sort before True…but I don’t know if that’s a behavior I should rely on or not.

(I’m sure there’s some Python doc about this, but I can’t find it…)

Asked By: Richard Levasseur

||

Answers:

http://docs.python.org/2/reference/datamodel.html#the-standard-type-hierarchy

Booleans: These represent the truth values False and True. The two objects representing the values False and True are the only Boolean objects. The Boolean type is a subtype of plain integers, and Boolean values behave like the values 0 and 1, respectively, in almost all contexts, the exception being that when converted to a string, the strings “False” or “True” are returned, respectively.

This reads to me that the python language requires False < True, False == 0, True == 1, True != 2.

The same wording is retained in Python 3 as well.

Answered By: Bill Lynch

We can show bool is sortable using the Python REPL, with False being the lower value:

>>> sorted([False, True, True, False, True])
[False, False, True, True, True]
Answered By: Graham Lea
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.