[Python-Dev] dict and required hashing

Armin Rigo arigo at tunes.org
Sat Apr 19 10:43:44 CEST 2014

Hi Jim,

On 18 April 2014 23:46, Jim J. Jewett <jimjjewett at gmail.com> wrote:
> (2)  Is "the item will be hashed at least once" a language guarantee?

I think that a reasonable implementation needs to hash at least once
all keys that are added to the dictionary.  Otherwise we end up, as
you said, with a dictionary that contains non-hashable keys: this
crashes when it grows and tries to convert from a list storage to a
hash table.  This is against the expectations and probably against the
language spec...

It's a bit unclear to me if the language spec requires "if [ ] in
mydict:" to raise TypeError, as the key doesn't get added to the dict
in this case.  Similarly for "[ ] in { }" where the dictionary is
empty anyway.  I would say yes, erring on the side of caution...

A bientôt,


More information about the Python-Dev mailing list