On 28/03/06, Carroll, Barry <[EMAIL PROTECTED]> wrote: > 1. Access by name (dict) > 2. Access by position (list) > 3. Addition of new items (dict, list) > 4. Set a 'last used' item (??????) > 5. Set a 'default' item (dict???)
Probably your best bet is to define your own container class. If you define __getitem__, you can use [] with instances of your class, just like lists or dicts. Something like this, perhaps (untested): class MaskDict(UserDict.DictMixin): def __init__(self): self.keys = [] self.data = {} self.default = None def __getitem__(self, key): if isinstance(key, (int, long)): self.default = self.keys[key] return self.data[self.default] else: self.default = key return self.data[key] def __setitem__(self, key, value): try: self.keys.remove(key) except ValueError: pass self.keys.append(key) self.data[key] = value def __delitem__(self, key, value): del self.data[key] self.keys.remove(key) def keys(self): return self.keys def setDefault(self, key): self.default = key HTH! -- John. _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor