DEV Community

loading...

How to check if key exists in a python dictionary?

hrishikesh1990
Co-founder & CTO at Flexiple & Remote Tools ($1mn+ revenue).
Originally published at flexiple.com ・3 min read

In this python tutorial, we look at dictionaries and how to check if a key exists in a dictionary we also explain the code to facilitate further learning.

This tutorial is a part of our initiative at Flexiple, to write short curated tutorials around often used or interesting concepts. However, in case you are here only for the solution use this link.

Table of Content

If you are here to learn how to check if a key exists in a dictionary it is most likely because of two reasons, either you are new to python or you tried using the has_key methods and were served with an error. In case it is the latter, this is because python3 has removed the has_key methods. However, there are other equally efficient methods and we look at them below.

Why do we check if a key exists in python dictionary?

Dictionaries are common and extensively used data types in python. They hold key-value pairs and these values are accessed by the respective keys in order to perform many tasks on them. And this is why it is a good practice to check if the key exists below you try to access its relevant value. Doing so would also reduce the likelihood of facing errors.

Now let's look at the different ways you can use to check if a key exists in python dictionary

Checking if a key exists using in operators:

The in operator in python is a membership operator, it takes two parameters and checks if one is a member of the other and returns a boolean True or False. In our case, we the in operator to check if the key is a member of the dictionary.

Code to check if a key exists in python dictionary

dict_1 = {"a": 1, "b":2, "c":3}
if "a" in dict_1:
    print("Exists")
else:
    print("Does not exist")

#Output = "Exists"
Enter fullscreen mode Exit fullscreen mode

Now let's check for a negative case

dict_1 = {"a": 1, "b":2, "c":3}
if "d" in dict_1:
    print("Exists")
else:
    print("Does not exist")

#Output = "Does not exist"
Enter fullscreen mode Exit fullscreen mode

Similarly, the not in operator can also be used. However, remember the in operator is case sensitive hence you could either ensure all your keys are in the same case or you could use the upper() or lower() methods respectively.

Using the get() method

The get() method is a dict method that is used to return the value of the key passed as an argument and if the key is not present it returns either a default value (if passed) else it returns None. Using this method we can pass a key and check if a key exists in python dictionary.

Syntax of get()

dictionary.get(keyname, value)
Enter fullscreen mode Exit fullscreen mode

Here dictionary is the name of the dict you indent to work with

Parameters

Keyname - The keyname of the value to intent to return

value - Optional, this value is returned in case the key does not exist

Code to check if the key exists in a dictionary using get()

dict_1 = {"a": 1, "b":2, "c":3}
if dict_1.get("a") is not None:
    print("Exists")
else:
    print("Does not exist")

#Output = "Exists"
Enter fullscreen mode Exit fullscreen mode

And for a negative case,

dict_1 = {"a": 1, "b":2, "c":3}
if dict_1.get("d") is not None:
    print("Exists")
else:
    print("Does not exist")

#Output = "Does not exist"
Enter fullscreen mode Exit fullscreen mode

While using this method keep in mind that this would not be accurate in case you have a key with the value None in case you don't then this method would work fine.

Closing thoughts

Although both these methods have their respective caveats to vary about they are far similarly and efficient in comparison to the other methods. And regarding other methods, I've come across methods that iterate over the dictionary and then check compare it to the key. However, all those methods so work they aren't efficient and should only be used to facilitate understanding of the concepts. But in case you are a learner, please feel free to try out such methods as well.

Do leave your thoughts in the comment section below. Happy learning. :)

Discussion (1)

Collapse
walter11 profile image
Atharv-777

We can aslo use dictionary.keys() method to get all keys present in the dictionary and check if a particular key is present or not.