On 2007-09-16, Arvind Singh wrote: > > How do you get from "some keys can't be ordered" to "it doesn't make > > sense for Python to have sorteddict or sortedset"? If you want to use > > keys that can't be ordered, then feel free to continue to use dict. > > For situations in which ordering is important, that language should > > support that. When did this become an all or nothing proposition? > > There's plenty of space for both dict and sorteddict. > > Sorry for premature conclusions. All I wanted to do was remind the > potential problems with any "generic" implementation. > > And I did say, when ordering is important, we are left with two choices: > 1) Sort explicitly (whenever required) and be prepared to handle exceptions > raised during sort operation. > 2) Have a implicitly "sorted" implementation and handle exceptions at every > insertion. > > I, personally, tend to prefer the former solution. Later case is useful > when we have large objects and we do large number of insertions, in which > case, per insertion exception handling would be inefficient. Former case, > in turn, can be slightly confusing and a bit to debug.
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. To this end I've put a posting on comp.lang.python with subject: sorteddict PEP proposal [started off as orderedict] If there is a positive response I will submit it to the PEP editors. If there is not, I will just hope that someone else will pick up the idea, even if in another form or with a different API, because I'd really like to see some kind of sorted dictionary in Python's standard library. (I also think there's a similar case for a sorted set.) -- Mark Summerfield, Qtrac Ltd., www.qtrac.eu _______________________________________________ Python-3000 mailing list Python-3000@python.org http://mail.python.org/mailman/listinfo/python-3000 Unsubscribe: http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com