On 10/25/2012 9:46 PM, mambokn...@gmail.com wrote:
a = [float('nan'), 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
a
[nan, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
a.index(float('nan'))
Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
ValueError: list.index(x): x not in list

That means, the function .index() cannot detect nan values.
It happens on both Python 2.6 and Python 3.1

Is this a bug? Or I am not using .index() correctly?

It is a consequence of the following, which some people (but not all) believe is mandated by the IEEE standard.

>>> nan = float('nan')
>>> nan is nan
True
>>> nan == nan
False

>>> nanlist = [nan]
>>> nan in nanlist
True
>>> nanlist.index(nan)
0

Containment of nan in collection is tested by is, not ==.

>>> nan2 = float('nan')
>>> nan2 is nan
False
>>> nan2 == nan
False
>>> nan2 in nanlist
False

--
Terry Jan Reedy

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to