Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class ordered_dict(dict):
- def __init__(self, *args, **kwargs):
- dict.__init__(self, *args, **kwargs)
- self._order = self.keys()
- def __setitem__(self, key, value):
- dict.__setitem__(self, key, value)
- if key in self._order:
- self._order.remove(key)
- self._order.append(key)
- def __delitem__(self, key):
- dict.__delitem__(self, key)
- self._order.remove(key)
- def order(self):
- return self._order[:]
- def ordered_items(self):
- return [(key,self[key]) for key in self._order]
- od = ordered_dict()
- od["hello"] = "world"
- od["goodbye"] = "cruel world"
- print od.order() # prints ['hello', 'goodbye']
- del od["hello"]
- od["monty"] = "python"
- print od.order() # prints ['goodbye', 'monty']
- od["hello"] = "kitty"
- print od.order() # prints ['goodbye', 'monty', 'hello']
- print od.ordered_items()
- # prints [('goodbye','cruel world'), ('monty','python'), ('hello','kitty')]
- my_dict={}
- my_dict["foo"]="bar"
- my_dict=odict.odict()
- my_dict["foo"]="bar"
Add Comment
Please, Sign In to add comment