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