[Python-Dev] Proposal: add odict to collections

zooko zooko at zooko.com
Mon Jun 16 00:02:12 CEST 2008


On Jun 15, 2008, at 12:20 PM, zooko wrote:

> So, it would be easy to change those two behaviors in order to use  
> this implementation.  There are actually three implementations in  
> that file: one that is asymptotically O(1) for all operations  
> (using a double-linked list woven into the values of the dict), and  
> one that uses a Python list to hold the order, so it is faster for  
> small enough dicts.

P.S.  I didn't mean to fall for the common misunderstanding that hash  
table operations are O(1).  What I should have written is that my  
ordered dict technique *adds* only O(1) time to the time of the dict  
on which it is built.

As to the question of how important or common this data structure is,  
I have to admit that while I implemented this one and used it several  
times (always exclusively for LRU caching), I currently don't use it  
for anything.  Nowadays I try to avoid doing transparent caching  
(such as LRU caches are often used for) in favor of explicit  
management of the resource.

Regards,

Zooko



More information about the Python-Dev mailing list