Today, I discovered a little-used feature on Python’s dict
type that I
thought was worth talking about briefly: the setdefault
method.
setdefault
will check the dictionary for the key given in the first argument
and pass it on if it exists. If it doesn’t exist however, it will set that key
to the default value being specified in the second argument and return this.
This is a great way to intialise sub-dictionaries and to avoid KeyError
when
it is unknown whether a sub-dictionary was already initialised.
people = {
'alice': {
'age': 25
}
}
# ...
# User 'john' might have or might not have been initialised
# ...
people.setdefault('john', {})['age'] = 32