Python dictionaries, key existence with fallback

python

Solution

You should most definitely not use the second form, because it will throw a `KeyError` if the key does not exist your dictionary. You're only getting acceptable behavior out of the second form because the key was set.

Problem

Is there any difference, gotcha or disadvantage between these approaches? ``` foo = dict(key=u"") bar = foo.get('key', 'foobar') ``` vs ``` foo = dict(key=u"") bar = bool(foo['key']) or 'foobar' ```

Original source