missing? dictionary methods

Robert Kern rkern at ucsd.edu
Mon Mar 21 06:59:00 EST 2005


Antoon Pardon wrote:
> Well at least I find them missing.
> 
> For the moment I frequently come across the following cases.
> 
> 1) Two files, each with key-value pairs for the same dictionary.
> However it is an error if the second file contains a key that
> was not in the first file.
> 
> In treating the second file I miss a 'set' method.
> dct.set(key, value) would be equivallent to dct[key] = value,
> except that it would raise a KeyError if the key wasn't
> already in the dictionary.
> 
> 
> 2) One file with key-value pairs. However it is an error
> if a key is duplicated in the file.
> 
> In treating such files I miss a 'make' method.
> dct.make(key, value) would be equivallent to dct[key] = value.
> except that it would raise a KeyError if the key was
> already in the dictionary.
> 
> 
> What do other people think about this?

def safeset(dct, key, value):
     if key not in dct:
         raise KeyError(key)
     else:
         dct[key] = value

def make(dct, key, value):
     if key in dct:
         raise KeyError('%r already in dict' % key)
     else:
         dct[key] = value

I don't see a good reason to make these built in to dict type.

-- 
Robert Kern
rkern at ucsd.edu

"In the fields of hell where the grass grows high
  Are the graves of dreams allowed to die."
   -- Richard Harter



More information about the Python-list mailing list