Owen C. Jones
Owen C. Jones

Reputation: 1495

Null coalescing on a dict entry in python

So, I'm aware that, in Python I can do this:

variable_name = other_variable or 'something else'

...and that that will assign 'something else' to variable_name if other_variable is falsy, and otherwise assign other_variable value to variable.

Can I do a nice succinct similar thing with a dict:

variable_name = my_dict['keyname'] or 'something else'

...or will a non-existent keyname always raise an error, cause it to fail?

Upvotes: 7

Views: 6192

Answers (1)

jpp
jpp

Reputation: 164613

You will see KeyError if 'keyname' does not exist in your dictionary. Instead, you can use:

variable_name = my_dict.get('keyname', False) or 'something else'

With this logic, 'something else' is assigned when either 'keyname' does not exist or my_dict['keyname'] is Falsy.

Upvotes: 9

Related Questions