[Python-ideas] Identity dicts and sets

Eli Bendersky eliben at gmail.com
Wed Jan 2 20:43:47 CET 2013


On Wed, Jan 2, 2013 at 6:01 AM, 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 agree that the data structures may be useful, but is there no way to some
allow the customization of existing data structures instead, without losing
performance? It's a shame to have another kind of dict just for this
purpose.

Eli
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20130102/2b2bba18/attachment.html>


More information about the Python-ideas mailing list