How can I check if a given key already exists in a Python dictionary?

I have a Python dictionary, and I want to check if a given key already exists in it before adding a new key-value pair. What’s the best way to do this?

Let’s say I want to check if the key “apple” already exists in my_dict. I know I can do this using the in operator like so:

But are there any other, more efficient ways to do this? And are there any pitfalls to be aware of?
Any help or suggestions would be greatly appreciated. Thank you!

2 Likes

Hello @sabih, you can also use the dict.get() method to achieve this. The get() method takes two arguments: the first argument is the key that you want to check, and the second argument is the default value that should be returned if the key does not exist in the dictionary. Here is an example code that demonstrates its usage:

The condition is made to check if this method returns None or not, because when a key does not exist, this method returns None otherwise it returns the value associated with that key.

I hope this helps you.

Hi @sabih!
Another way to check if a given key already exists in a Python dictionary before adding a new key-value pair, other than using the get() method, as previously mentioned by @mubashir_rizvi, is to use a try-except block. Here’s an example code snippet:

In this code, a try-except block is used to access the value associated with the key_to_check key in the my_dict dictionary. If the key exists in the dictionary, the try block will run successfully and we will print a message saying that the key exists and showing its value. If the key does not exist in the dictionary, a KeyError exception will be raised and the except block will run, printing a message saying that the key does not exist.
If you want to check for a different key, change the value of the key_to_check variable to the desired key.

Note: try-except blocks can be helpful for handling exceptions and errors, they can be less efficient than using the in keyword or the get() method in cases where the key already exists in the dictionary. This is because try-except blocks involve more overhead and can slow down your code. Therefore, it is generally recommended to use the in keyword or the get() method for checking if a key exists in a dictionary unless you specifically need to handle exceptions.

Hey @sabih, setdefault() method is a built-in method of dictionaries that can be used to add a new key-value pair to the dictionary only if the key doesn’t already exist.

In the above code, if the key already exists, the method setdefault returns the existing value of the key, and the code prints a message saying that the key already exists. If the key doesn’t exist, the method adds the new key-value pair to the dictionary with a value of 1, and the code prints a message saying that the key has been added.