
On 28/04/2011 16:02, Alexander Belopolsky wrote:
On Thu, Apr 28, 2011 at 10:22 AM, Mike Graham<mikegraham@gmail.com> wrote:
On Thu, Apr 28, 2011 at 4:52 AM, Alexander Belopolsky <alexander.belopolsky@gmail.com> wrote: ..
Since py3k has already made None< 0 an error, it may be reasonable for float('nan')< 0 to raise an error as well (probably ValueError rather than TypeError). This will not make lists with nans sortable or searchable using binary search, but will make associated bugs easier to find.
I'm -0 on this -- I really favor having NaNs behave like NaNs.
.. but IEEE 754 specifies that NaNs compare as "unordered".
I get this (Python 3.1.2):
sorted([1, float('nan'), 0, 0]) [1, nan, 0, 0] sorted([1, 0, float('nan'), 0]) [0, 0, 1, nan]
I think that as NaNs behave like this:
float('nan') == float('nan') False float('nan') < float('nan') False float('nan') > float('nan') False
trying to sort them should raise an exception, just to preserve users' sanity! IMHO, the current behaviour just makes it look like a bug.