[Python-ideas] ordered dict
Mathias Panzenböck
grosser.meister.morti at gmx.net
Fri Apr 20 20:31:50 CEST 2007
Josiah Carlson schrieb:
>
> However, the problem with choosing to use an AVL (Red-Black, 2-3, etc.)
> tree is deciding semantics. Do you allow duplicate keys?
Does dict? no. so no.
> Do you allow
> insertion and removal by position?
Does dict? no. so no.
> Do you allow the fetching of the
> key/value at position X?
Does dict? no. so no.
> Do you allow the fetching of the position for
> key X?
Does dict? no. so no.
> Insertion before/after (bisect_left, bisect_right equivalents).
> Etcetera.
>
Why should all this be relevant? It just has to be some kind of
relation between a key and a value, and the keys should be accessible
in a sorted way (and you should not to have to sort them every time).
So it would be possible to slice such a container.
> In many cases, using a sorted list gets you what you want, is almost as
> fast, and has the benefit of using less memory.
>
AFAIK does a doubled link list use the same amount of memory as a
(very) simple AVL tree:
struct tree_node {
struct tree_node left;
struct tree_node right;
void * data;
};
struct list_node {
struct list_node prev;
struct list_node next;
void * data;
};
>
> - Josiah
>
More information about the Python-ideas
mailing list