Nov. 9, 2009
5:25 a.m.
On Mon, Nov 9, 2009 at 1:21 PM, Stefan Krah <stefan-usenet@bytereef.org> wrote:
Antoine Pitrou <solipsis@pitrou.net> wrote:
(NB: interestingly, float("nan") does hash)
I wonder if it should:
d = {float('nan'): 10, 0: 20} 0 in d True float('nan') in d False d[float('nan')] Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: nan
That's because you're creating two different float nans. Compare with: Python 3.2a0 (py3k:76132M, Nov 6 2009, 14:47:39) [GCC 4.2.1 (SUSE Linux)] on linux2 Type "help", "copyright", "credits" or "license" for more information.
nan = float('nan') d = {nan: 10, 0: 20} nan in d True d[nan] 10
Mark