Source code for dk.collections.sdict



[docs]class sdict(dict): """Sorted Dictionary class. Iterating over the sdict will give back the key/value pairs in order of insertion. A key can only be in a sdict once. """ def __init__(self, **attrs): super(sdict, self).__init__() self._order = [] for k, v in attrs.items(): self[k] = v def __setitem__(self, key, val): if key in self._order: self._order.remove(key) self._order.append(key) super(sdict, self).__setitem__(key, val) def __iter__(self): return ((key, self[key]) for key in self._order)
[docs] def keys(self): return self._order
[docs] def values(self): return [self[k] for k in self._order]