Why are there no ordered dictionaries?

Carsten Haese carsten at uniqsys.com
Wed Nov 23 15:43:38 EST 2005


On Wed, 2005-11-23 at 15:17, Christoph Zwerschke wrote:
> Bengt Richter wrote:
>  > I think the concept has converged to a replace-or-append-by-key ordering
>  > of key:value items with methods approximately like a dict. We're now
>  > into usability aspects such as syntactic sugar vs essential primitives,
>  > and default behaviour vs selectable modes, ISTM.
> 
> Yes, and we would be good if we do not stop the discussion at this point 
> with nothing, but really create such a sophisticated implementation. 
> Whether it will become popular or go to the standard lib some day is a 
> completely different question.
> 
>  > E.g., it might be nice to have a mode that assumes d[key] is 
> d.items()[k][1] when
>  > key is an integer, and otherwise uses dict lookup, for cases where 
> the use
>  > case is just string dict keys.
> 
> I also thought about that and I think PHP has that feature, but it's 
> probably better to withstand the temptation to do that. It could lead to 
> an awful confusion if the keys are integers.

Thus quoth the Zen of Python:
"Explicit is better than implicit."
"In the face of ambiguity, refuse the temptation to guess."

With those in mind, since an odict behaves mostly like a dictionary, []
should always refer to keys. An odict implementation that wants to allow
access by numeric index should provide explicitly named methods for that
purpose.

-Carsten





More information about the Python-list mailing list