patternpythonCritical
Check if a given key already exists in a dictionary
Viewed 0 times
keyalreadyexistsgivencheckdictionary
Problem
I wanted to test if a key exists in a dictionary before updating the value for the key.
I wrote the following code:
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?
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?
Solution
in tests for the existence of a key in a dict:d = {"key1": 10, "key2": 23}
if "key1" in d:
print("this will execute")
if "nonexistent key" in d:
print("this will not")Use
dict.get() to provide a default value when the key does not exist:d = {}
for i in range(100):
key = i % 10
d[key] = d.get(key, 0) + 1To provide a default value for every key, either use
dict.setdefault() on each assignment:d = {}
for i in range(100):
d[i % 10] = d.setdefault(i % 10, 0) + 1...or better, use
defaultdict from the collections module:from collections import defaultdict
d = defaultdict(int)
for i in range(100):
d[i % 10] += 1Code Snippets
d = {"key1": 10, "key2": 23}
if "key1" in d:
print("this will execute")
if "nonexistent key" in d:
print("this will not")d = {}
for i in range(100):
key = i % 10
d[key] = d.get(key, 0) + 1d = {}
for i in range(100):
d[i % 10] = d.setdefault(i % 10, 0) + 1from collections import defaultdict
d = defaultdict(int)
for i in range(100):
d[i % 10] += 1Context
Stack Overflow Q#1602934, score: 5715
Revisions (0)
No revisions yet.