subplot title python
¿Es todo más grande que ninguno? (2)
Esta pregunta ya tiene una respuesta aquí:
¿Hay un tipo de datos incorporado de Python, además de None
, para el cual:
>>> not foo > None
True
donde foo
es un valor de ese tipo? ¿Qué hay de Python 3?
None
es siempre menor que cualquier tipo de datos en Python 2 (ver object.c
).
En Python 3, esto fue cambiado; ahora haciendo comparaciones en cosas sin una ordenación natural sensata resulta en un TypeError
. De las 3.0 actualizaciones de "novedades" :
Python 3.0 ha simplificado las reglas para ordenar comparaciones:
Los operadores de comparación de pedidos (
<
,<=
,>=
,>
)TypeError
una excepciónTypeError
cuando los operandos no tienen un orden natural significativo. Por lo tanto, expresiones como:1 < ''''
,0 > None
olen <= len
ya no son válidas, y por ejemploNone < None
aumentaTypeError
lugar de devolverFalse
. Un corolario es que ordenar una lista heterogénea ya no tiene sentido, todos los elementos deben ser comparables entre sí. Tenga en cuenta que esto no se aplica a los operadores==
y!=
: Los objetos de diferentes tipos incomparables siempre se comparan desiguales entre sí.
Esto molestó a algunas personas, ya que a menudo resultaba útil hacer cosas como ordenar una lista que tenía algunos valores None
y hacer que los valores None
aparezcan agrupados al principio o al final. Hubo un hilo en la lista de correo sobre esto hace un tiempo, pero el punto final es que Python 3 intenta evitar tomar decisiones arbitrarias sobre ordenar (que es lo que sucedió mucho en Python 2).