En mi opinión, cosas como float('nan') deberían optimizarse, pero aparentemente no están en Python.
>>> NaN = float('nan') >>> a = [ 1, 2, 3, NaN ] >>> NaN in a True >>> float('nan') in a False ¿Tiene algún significado no optimizar nan como otras cosas? En mi pensamiento, nan es solo nan .
Además de esto, cuando usas sorted en estas cosas, dan resultados extraños:
>>> sorted([3, nan, 4, 2, nan, 1]) [3, nan, 1, 2, 4, nan] >>> 3 > float('nan') False >>> 3 < float('nan') False La comparación en nan se define así, pero no me parece 'pitónica'. ¿Por qué no da error?