On 14-Jun-08, at 8:39 PM, Armin Ronacher wrote:
...
I noticed lately that quite a few projects are implementing their own
subclasses of `dict` that retain the order of the key/value pairs.
...
I'm +1 on this one too, as there are at least a couple of times in recent memory when I would have found this useful.

And, as far as questions about the definition of an ordered dictionary, is there any good reason not to simply treat the dict as a list? Something like (with the obvious bits left out):

class odict(dict):
  def __init__(self, *args):  self._order = []
def __setitem__(self, key, val): if key not in self: self._order.append(key)
  def __iter__(self):  return self._order
  def items(self):  return ([item, self[item] for item in self._order])
  def sort(self):  self._order.sort()
... and so on ...

That way all the order-related functions are well defined, so it would be hard claim that it doesn't do the "right thing" without claiming that lists don't do the "right thing".
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to