¿Cómo compara Python 2 string e int? ¿Por qué las listas se comparan como mayores que los números y las tuplas como mayores que las listas?
El siguiente fragmento se anota con la salida (como se ve en ideone.com):
print "100" < "2" # True
print "5" > "9" # False
print "100" < 2 # False
print 100 < "2" # True
print 5 > "9" # False
print "5" > 9 # True
print [] > float('inf') # True
print () > [] # True
¿Alguien puede explicar por qué la salida es como tal?
Detalles de implementacion¿Es este comportamiento obligatorio por la especificación del lenguaje, o depende de los implementadores?¿Hay diferencias entre alguna de las principales implementaciones de Python?¿Hay diferencias entre las versiones del lenguaje Python?