[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