float("nan") in set or as key
Grant Edwards
invalid at invalid.invalid
Sat May 28 22:25:55 EDT 2011
On 2011-05-29, Albert Hopkins <marduk at letterboxes.org> wrote:
> On Sun, 2011-05-29 at 00:41 +0100, MRAB wrote:
>> Here's a curiosity. float("nan") can occur multiple times in a set or as
>> a key in a dict:
>>
>> >>> {float("nan"), float("nan")}
>> {nan, nan}
>>
> These two nans are not equal (they are two different nans)
>
>> except that sometimes it can't:
>>
>> >>> nan = float("nan")
>> >>> {nan, nan}
>> {nan}
>
> This is the same nan, so it is equal to itself.
No, it's not.
>>> x = float("nan")
>>> y = x
>>> x is y
True
>>> x == y
False
> I can't cite this in a spec, but it makes sense (to me) that two things
> which are nan are not necessarily the same nan.
Even if they _are_ the same nan, it's still not equal to itself.
--
Grant
More information about the Python-list
mailing list