string formatting with missing dictionary key
gyro
gyromagnetic at excite.com
Tue Jan 14 07:49:54 EST 2003
> (Requires Python 2.2)
>
> class D(dict):
> def __getitem__(self, item):
> if not self.has_key(item): return "default"
> return super(D, self).__getitem__(item)
>
> print "%(a)s ; %(d)s; %(e)s" % D({'a':1, 'b':2, 'c':3})
>
> <from Jeff Epler>
>
>>>>>>> from UserDict import UserDict
>>>>>>> class MyDict(UserDict):
>
> ... def __getitem__(self, k):
> ... return self.data.get(k, 'no data')
> ...
>
>
>>>>>>>
>
>
> --Gilles
>
>>>>class myDict:
>
> ... def __init__(self,default='default'):
> ... self.mdict={}
> ... self.default=default
> ... def __setitem__(self,key,value):
> ... self.mdict[key]=value
> ... def __getitem__(self,key):
> ... return self.mdict.get(key,self.default)
> ... def keys(self):
> ... return self.mdict.keys()
> ... def values(self):
> ... return self.mdict.values()
> ... def items(self):
> ... return self.mdict.items()
> ... def update(self,dict):
> ... self.mdict.update(dict)
> ...
>
>
> Cheers Peter!
Thanks Jeff, Gilles, and Peter!
Looks like subclassing dict/UserDict or creating a new dict class is the
way to go.
-g
More information about the Python-list
mailing list