I wanted to test if a key exists in a dictionary before updating the value for the key. I wrote the following code:
if 'key1' in dict.keys(): print "blah" else: print "boo"
I think this is not the best way to accomplish this task. Is there a better way to test for a key in the dictionary?
in is the intended way to test for the existence of a key in a
d = dict() for i in range(100): key = i % 10 if key in d: d[key] += 1 else: d[key] = 1
If you wanted a default, you can always use
d = dict() for i in range(100): key = i % 10 d[key] = d.get(key, 0) + 1
... and if you wanted to always ensure a default value for any key you can use
defaultdict from the
collections module, like so:
from collections import defaultdict d = defaultdict(int) for i in range(100): d[i % 10] += 1
... but in general, the
in keyword is the best way to do it.