Mark wrote:
On 16 July, 10:21, Piet van Oostrum <p...@cs.uu.nl> wrote:

But why should the order be as if the OrderedDict was a list of tuples.
A dict can be considered as a mapping and then you might want to treat
either the key or the value as contravariant (the key I guess). So there
is ambiguity. Why would the view as a list of tuples for the ordering be
the `natural' view?

Maybe you may expect some kind of monotonicity such that d1<d2 implies
d1[x]<d2[x], but that doesn't work for d1 = {1:10, 2:20} and d2 = {1:15,
2:5}. So maybe there is only a partial ordering?

OK, that seems to me to be a convincing argument against supporting
ordering.

To put the above in a slightly different way. OrderedDicts are a recently added niche class that Raymond added to what is mostly his collections module because there are enough few use cases. There was pydev discussion which included the idea, I believe, that they should fundamentally be dicts, not lists. Regardless, the justifying use cases did not include a need to compare OrderedDicts. The small fraction of the few use cases for OrderedDicts that do require comparision can be met by extracting the needed sequences and comparing *them* in the appropriate manner. The 'appropriate manner' is not likely to always be the same. This point may have come up in the discussion, but I would let you check for sure if curious.

'Consistency' is a Python design principle, but it is balanced with others, so that it is not sufficient reason to add nearly useless features. There is a cost to every addition.

Terry Jan Reedy

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to