Thursday 2 January 2020

python - Check if a given key already exists in a dictionary

Answer


Answer





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?


Answer




in is the intended way to test for the existence of a key in a dict.



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 dict.get():



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.


No comments:

Post a Comment

php - file_get_contents shows unexpected output while reading a file

I want to output an inline jpg image as a base64 encoded string, however when I do this : $contents = file_get_contents($filename); print &q...