[Python-ideas] Identity dicts and sets
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