On Mon, Nov 9, 2009 at 1:21 PM, Stefan Krah <stefan-use...@bytereef.org> wrote: > Antoine Pitrou <solip...@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 _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com