[Python-Dev] dict.supplement() (was Re: list.shift())
artcom0!pf@artcom-gmbh.de
artcom0!pf@artcom-gmbh.de
Fri, 17 Mar 2000 23:43:35 +0100 (MET)
Ka-Ping Yee wrote:
[...]
> > # pretend lists are implemented in Python and 'self' is a list
> > def shift(self):
> > item = self[0]
> > del self[:1]
> > return item
[...]
Guido van Rossum:
> You can do this using list.pop(0). I don't think the name "shift" is very
> intuitive (smells of sh and Perl :-). Do we need a new function?
I think no. But what about this one?:
# pretend self and dict are dictionaries:
def supplement(self, dict):
for k, v in dict.items():
if not self.data.has_key(k):
self.data[k] = v
Note the similarities to {}.update(dict), but update replaces existing
entries in self, which is sometimes not desired. I know, that supplement
can also simulated with:
tmp = dict.copy()
tmp.update(self)
self.data = d
But this is stll a little ugly. IMO a builtin method to supplement
(complete?) a dictionary with default values from another dictionary
would sometimes be a useful tool.
Regards, Peter
--
Peter Funk, Oldenburger Str.86, D-27777 Ganderkesee, Germany, Fax:+49 4222950260
office: +49 421 20419-0 (ArtCom GmbH, Grazer Str.8, D-28359 Bremen)