[Python-ideas] Disallow orderring comparison to NaN

Mike Graham mikegraham at gmail.com
Thu Apr 28 19:26:38 CEST 2011


On Thu, Apr 28, 2011 at 12:00 PM, Steven D'Aprano <steve at pearwood.info> wrote:
> Mike Graham wrote:
>>
>> On Thu, Apr 28, 2011 at 10:01 AM, Steven D'Aprano <steve at pearwood.info>
>> wrote:
>>>
>>> I think I would like to see a demonstration of this rather than just take
>>> your word for it.
>>
>> One demonstration would be
>
> [snip]
>
> Thank you.
>
> Nevertheless, that does appear to be an easy fix:
>
>
> def bubble_sort(xs):
>    while True:
>        changed = False
>        for i in range(len(xs) - 1):
>            # don't use `not (xs[i] < xs[i + 1])` as that fails in the
>            # presence of NANs
>            if xs[i] >= xs[i + 1]:
>                changed = True
>                xs[i], xs[i + 1] = xs[i + 1], xs[i]
>        if not changed:
>            break
>
> --
> Steven

Note this actually isn't an improvement--it merely takes a noticeable
error and turns it into a data-polluter. (Sorting a sequence
containing NaNs is obviously not a valid operation, which is the
argument for OP's suggestion.)

MG



More information about the Python-ideas mailing list