pythonfallback

Python dictionaries, key existence with fallback


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'

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.