[Python-ideas] ordered dict (original) (raw)

Terry Reedy tjreedy at udel.edu
Sat Apr 21 16:59:46 CEST 2007


"BJörn Lindqvist" <bjourne at gmail.com> wrote in message news:740c3aec0704202128g6537c5bfv94c0f60a5d883d76 at mail.gmail.com...

On 4/20/07, Terry Reedy <tjreedy at udel.edu> wrote:

2. Order in the sorting or collation sense, which I presume you mean. To reduce confusion, call this a sorted dictionary, as others have done.

Regardless, this has the problem that potential keys are not always comparable.

Current example:

[1, 1j].sort()

Traceback (most recent call last): File "<pyshell#2>", line 1, in -toplevel- [1, 1j].sort() TypeError: no ordering relation is defined for complex numbers

This will become worse when most cross-type comparisons are disallowed in 3.0.

>>> l = [(), "moo", 123, []] >>> l.sort() >>> l [123, [], 'moo', ()]

Py 3.0 will raise an exception here as these will all be incomparable.

If it is not a problem for lists it is not a problem for ordered dictionaries.

But it is currently a problem for lists that will become much more extensive in the future, so it is currently a problem for sorted dicts that will be much more of a problem in the future. Hence, sorted dicts will have to be restricted to one type or one group of truly comparable types.

Terry Jan Reedy



More information about the Python-ideas mailing list