I have discovered that a list is greater than a number.
>>> [1,2,3] > 1000
True
Is there some reason why this works? I can’t convert a list to an int with int([1,2,3]). The int can’t be converted to a list with list(1000). So how is python comparing the two?
In this case of “mismatched” types, the types are listed lexicographically by type name: a “list” comes after an “int” in alphabetical ordering, so it is greater.
There is no language specification for the ordering (apart from the fact that it is consistent). It just happens to be the case that CPython is the most common implementation in which there is this language detail of being ordered lexicographically by type names.