Differences between revisions 3 and 4
Revision 3 as of 2009-06-09 16:16:17
Size: 759
Editor: 72
Comment: Clarified Wording a bit
Revision 4 as of 2009-06-09 16:22:42
Size: 783
Editor: 72
Comment: Clarification
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
If you don't want to have an exception but default value used instead, you can use `get()` method: If you don't want to have an exception but would rather a default value used instead, you can use the `get()` method:
Line 12: Line 12:
of key only if it is not already in the dict, and returns the value in any case: of the key only if it is not already in the dict, and returns that value in any case:

Python raises a KeyError whenever a dict() object is requested. Using the format a = adict[key] if the key is not in the dictionary.

If you don't want to have an exception but would rather a default value used instead, you can use the get() method:

   1 default = 'Scruffy'
   2 a = adict.get('dogname', default)

Even more handy is somewhat controversially-named setdefault(key, val) which sets the value of the key only if it is not already in the dict, and returns that value in any case:

   1 default = 'Scruffy'
   2 dog_owned_by = {'Peter': 'Furry', 'Sally': 'Fluffy'}
   3 
   4 dogs = []
   5 for owner in ('Peter', 'Sally', 'Tim'): 
   6     dogs.append(dog_owned_by.setdefault(owner, default))
   7 
   8 # dogs == ['Furry', 'Fluffy', 'Scruffy']

KeyError (last edited 2012-11-20 14:56:07 by yosefcz)

Unable to edit the page? See the FrontPage for instructions.