Another method that I find isn't used enough: dict.setdefault. Instead of doing this:
if 'key' in d:
val = d['key']
else:
val = d['key'] = 'some default value'
You can do this: val = d.setdefault('key', 'some default value')
This is super-useful for configuration in frameworks, for example - it's a one-liner to set a default config value if the user didn't provide one.