[Python-ideas] Identity dicts and sets
Serhiy Storchaka
storchaka at gmail.com
Wed Jan 2 15:01:29 CET 2013
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.
More information about the Python-ideas
mailing list