[Python-3000] ordered dict for p3k collections? (original) (raw)
Mark Summerfield mark at qtrac.eu
Tue Sep 25 19:43:12 CEST 2007
- Previous message: [Python-3000] ordered dict for p3k collections?
- Next message: [Python-3000] ordered dict for p3k collections?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 2007-09-25, Guido van Rossum wrote:
On 9/25/07, Mark Summerfield <mark at qtrac.eu> wrote: > I can understand your personal preference for dict, although mine is for > sorteddict---but IMO Python should provide both since both are > legitimate in appropriate contexts.
Careful what you wish for. One of Python's strengths is that there is not a lot of choice in data type implementations (unless you go to relatively obscure places like the collections module or 3rd party extensions). This saves programmers time because they don't have to decide what data type implementation to use in cases where it doesn't matter (and that's the majority of cases). This is not a rationalization after the fact: it has always been a specific design goal in Python to minimize the number of decisions that a programmer must make up front. This goal also minimizes the danger that the wrong decision is made, as the standard data types are pretty darn good for almost any purpose.
My proposal was for the sorteddict to be put in the collections module, not as a builtin. One of the things I particularly like about Python is that the core language is small.
However, I think that the collections module is rather thin, and as you say, it is "obscure" so won't get in the way of inexperienced or casual users if it is beefed up a bit, yet could be really useful to more demanding users.
On comp.lang.python, a respondent called Paul Hankin suggested a somewhat different approach to mine: he proposed a sorteddict with the same API as a dict but with a constructor that is similar to the sorted() function:
sorteddict((mapping | sequence | nothing), cmp=None, key=None,
reverse=None)
He points out that this has a problem with keyword argument dictionaries, but that one solution is sorteddict(dict(**kwargs), ...).
From comments other people have made on this list and on comp.lang.python, it may be that Paul Hankin's approach is more popular and better than the one I proposed---the only downside being that he didn't give any hints as to an implementation.
I am hoping that Python 2.6 (and 3.0) will have a sorted dictionary of some kind, and I get the impression that it would be welcomed (in the standard library).
-- Mark Summerfield, Qtrac Ltd., www.qtrac.eu
- Previous message: [Python-3000] ordered dict for p3k collections?
- Next message: [Python-3000] ordered dict for p3k collections?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]