[Python-ideas] Identity dicts and sets (original) (raw)

Antoine Pitrou solipsis at pitrou.net
Wed Jan 2 20:34:31 CET 2013


On Wed, 02 Jan 2013 16:01:29 +0200 Serhiy Storchaka <storchaka at gmail.com> wrote:

I propose to add new standard collection types: IdentityDict and IdentitySet. They are almost same as ordinal dict and set, but uses identity check instead of equality check (and id() or hash(id()) as a hash). They will be useful for pickling, for implementing sizeof() for compound types, and for other graph algorithms.

Of course, they can be implemented using ordinal dicts: IdentityDict: key -> value as a dict: id(key) -> (key, value) IdentitySet as a dict: id(value) -> value However implementing them directly in the core has advantages, it consumes less memory and time, and more comfortable for use from C. IdentityDict and IdentitySet implementations will share almost all code with implementations of ordinal dict and set, only lookup function and metainformation will be different. However dict and set already use a lookup function overloading.

I'm ok with this proposal.

Regards

Antoine.



More information about the Python-ideas mailing list