Checking the Existence of Dictionary Keys
00:00 At the end of the last lesson, you saw that Python raises an error when you want to access a value of a dictionary with a key that doesn’t exist. In this lesson, you’ll learn how to prevent key errors by checking for keys first.
00:14
Instead of working in the IDLE Shell, we are working in the IDLE scripting window now. On the right side, you see the dictionary my_dog. It contains four items with the keys "name", "age", and "nicknames". I also added the fourth key, "hungry" with the value True again.
00:34
As you learned in the last lesson, you can access an item by writing my_dog, square brackets ([]), and then the key. In this case, let’s use "hungry".
00:50
Since we are in the IDLE scripting window, let’s pass this into the print() function.
01:03
So now on line 8, we have print(my_dog["hungry"]). When we save and run this file, then you see that the output is True in the left window, which is the value of "hungry".
01:20
You also learned in the last lesson that you can delete a dictionary item with the del keyword. Let’s take the my_dog["hungry"] item
01:31
and delete it before we call print(). So when we now run this code, then we get a KeyError because the key "hungry" doesn’t exist in the dictionary anymore. To prevent this error from happening, you can check that a key exists in a dictionary with the in keyword.
01:53
Before trying to access the "hungry" item, you can create an if statement: if "hungry" in my_dog: print(my_dog["hungry"]).
02:20
So the print() function call is only executed when "hungry" is in the my_dog dictionary. When you run the code now, then no error is raised because Python checked that "hungry wasn’t in the my_dog dictionary and didn’t execute the print() function call.
02:39 Another way of checking if a key exists in a dictionary is looping over it. Looping over a dictionary is a very common practice. You’ll learn more about it in the next lesson.
Become a Member to join the conversation.
