- Python: Check if a value exists in the dictionary (3 Ways)
- Check if value exist in dict using values() & if-in statement
- Frequently Asked:
- Check if a value exists in python dictionary using for loop
- Check if a value exists in a dictionary using any() and List comprehension
- Conclusion:
- Related posts:
- Share your love
- 1 thought on “Python: Check if a value exists in the dictionary (3 Ways)”
- Leave a Comment Cancel Reply
- Terms of Use
- Disclaimer
- Python: Check if a Key (or Value) Exists in a Dictionary (5 Easy Ways)
- What is a Python Dictionary?
- The Problem with Indexing a Python Dictionary
- Use Python to Check if a Key Exists: Python keys Method
- Use Python to Check if a Key Exists: Python in Operator
- Use the .get Method to Check if a Key Exists in a Python Dictionary
- Check if a Value Exists in a Python Dictionary Using .values()
Python: Check if a value exists in the dictionary (3 Ways)
Check if value exist in dict using values() & if-in statement
Python dictionary provides a method values(), which returns a sequence of all the values associated with keys in the dictionary. We can use ‘in’ keyword to check if our value exists in that sequence of values or not. For example,
value = 43 # python check if value exist in dict using "in" & values() if value in word_freq.values(): print(f"Yes, Value: '' exists in dictionary") else: print(f"No, Value: '' does not exists in dictionary")
Frequently Asked:
Yes, Value: '43' exists in dictionary
Here, value 43 exists our dictionary therefore it in statement evaluated to True.
Let’s look at a negative example, where we will try to check for a value that does not exist in the dictionary. For example,
value = 51 # python check if value exist in dict using "in" & values() if value in word_freq.values(): print(f"Yes, Value: '' exists in dictionary") else: print(f"No, Value: '' does not exists in dictionary")
No, Value: '51' does not exists in dictionary
Here, value 51 does not exist in our dictionary therefore if statement evaluated to False.
Related Articles:
Check if a value exists in python dictionary using for loop
We can iterate over all the key-value pairs of dictionary using a for loop and while iteration we can check if our value matches any value in the key-value pairs. We have created a separate function for this. Let’s understand this with an example,
def check_value_exist(test_dict, value): do_exist = False for key, val in test_dict.items(): if val == value: do_exist = True return do_exist value = 43 # Iterate over all key, value pairs in dict and check if value exist if check_value_exist(word_freq, value): print(f"Yes, Value: '' exists in dictionary") else: print(f"No, Value: '' does not exists in dictionary")
Yes, Value: '43' exists in dictionary
As value 43 exists in our dictionary, therefore check_value_exist() returned True.
Check if a value exists in a dictionary using any() and List comprehension
Using list comprehension, iterate over a sequence of all the key-value pairs in the dictionary and create a bool list. The list will contain a True for each occurrence of our value in the dictionary. Then call any() function on the list of bools to check if it contains any True. If yes then it means that our value exists in any key-value pair of the dictionary.
# Dictionary of string and int word_freq = < "Hello": 56, "at": 23, "test": 43, "this": 78 >value = 43 # Check if key exist in dictionary using any() if any([True for k,v in word_freq.items() if v == value]): print(f"Yes, Value: '' exists in dictionary") else: print(f"No, Value: '' does not exists in dictionary")
Yes, Value: '43' exists in dictionary
Here, value 43 exists in the dictionary therefore any() returned True.
Conclusion:
So, these were the different ways to check if a value exists in a dictionary or not.
Related posts:
Share your love
1 thought on “Python: Check if a value exists in the dictionary (3 Ways)”
Thank you very much for this guide!
I am currently learning Python using the book entitled “A Crash Course in Python”. Problem 6-6 asks to create a dictionary and look for empty values. After watching your video, I came up with what I think is a much more efficient way of doing this (compared to solutions posted on the web). Here is my code:
favorite_languages = ‘jen’ : ‘python’,
‘sarah’ : ‘c’,
‘jeremi’ : ‘COBOL’,
‘stephanie’ : ”,
‘patrick’ : ‘python’,
‘edward’ : ‘ruby’,
‘brandon’ : ”,
‘phil’ : ‘python’,
‘davis’ : ‘c sharp’,
‘ian’ : ‘ruby’,
>
for k, v in favorite_languages.items():
if v != ”:
print(k.title() + “, thank you for taking the poll.”)
else:
print(k.title() + “, please take the poll.”)
Leave a Comment Cancel Reply
This site uses Akismet to reduce spam. Learn how your comment data is processed.
Terms of Use
Disclaimer
Copyright © 2023 thisPointer
To provide the best experiences, we and our partners use technologies like cookies to store and/or access device information. Consenting to these technologies will allow us and our partners to process personal data such as browsing behavior or unique IDs on this site and show (non-) personalized ads. Not consenting or withdrawing consent, may adversely affect certain features and functions.
Click below to consent to the above or make granular choices. Your choices will be applied to this site only. You can change your settings at any time, including withdrawing your consent, by using the toggles on the Cookie Policy, or by clicking on the manage consent button at the bottom of the screen.
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
The technical storage or access that is used exclusively for statistical purposes. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.
Python: Check if a Key (or Value) Exists in a Dictionary (5 Easy Ways)
In this tutorial, you’ll learn how to use Python to check if a key exists in a dictionary. You’ll also learn how to check if a value exists in a dictionary. You’ll learn how to do this using the in operator, the .get() method, the has_key() function, and the .keys() and .values() methods.
Knowing how to work with Python dictionaries is an important skill. This can be especially helpful when working with web APIs that return JSON data.
While we can easily index a dictionary, if a key doesn’t exist, a KeyError will be thrown. This will cause some significant problems in your program, unless these errors are handled.
A much more safe alternative to using dictionary indexing, is to first check if a given key exists in a dictionary. Let’s get started learning!
The Quick Answer: Use in to see if a key exists
What is a Python Dictionary?
Dictionaries in Python are one of the main, built-in data structures. They consist of key:value pairs that make finding an items value easy, if you know their corresponding key. One of the unique attributes of a dictionary is that keys must be unique, but that values can be duplicated.
Let’s take a look at how dictionaries look in Python. They’re created using <> curly brackets and the key:value pairs are separated by commas.
Let’s create a dictionary called ages , which, well, contains the ages of different people:
One way that you’re often taught to access a dictionary value is to use indexing via the [] square bracket accessing. In the next section, you’ll see how dictionary indexing works and why it’s not always the best option. Following that, you’ll learn different methods of ensuring that a key exists.
The Problem with Indexing a Python Dictionary
Indexing a dictionary is an easy way of getting a dictionary key’s value – if the given key exists in the dictionary. Let’s take a look at how dictionary indexing works. We’ll use dictionary indexing to get the value for the key Nik from our dictionary ages :
We can see here that this worked beautifully. That being said, let’s see if we try to get the value for the key Jill , which doesn’t exist in the dictionary:
>>> ages = >>> print(ages['Jill']) KeyError: 'Jill'
We can see here, that if we try to access a dictionary’s value for a key that doesn’t exist, that a KeyError is thrown. This has some huge implications for your code. Unless the error is explicitly handled, the program will fail. One way to avoid a KeyError is to ensure that a key actually exists in a Python dictionary.
That’s exactly what you’ll learn in the next few sections. Let’s get started!
Use Python to Check if a Key Exists: Python keys Method
Python dictionary come with a built-in method that allows us to generate a list-like object that contains all the keys in a dictionary. Conveniently, this is named the .keys() method.
Printing out dict.keys() looks like this:
print(ages.keys()) # Returns: dict_keys(['Matt', 'Katie', 'Nik', 'Jack', 'Alison', 'Kevin'])
We can see how that looks like a little bit like a list. We can now check if a key exists in that list-like object!
Let’s see how we can use the .keys() method to see if a key exists in a dictionary. Let’s use this method to see if a key exists:
# Check if a key exists in a Python dictionary by checking all keys ages = some_key = 'James' if some_key in ages.keys(): print('Key exists') else: print('Key doesn\'t exist') # Returns Key doesn't exist
We can see here that we check whether or not a provided key, some_key , exists in the keys of our dictionary. In this case, the key didn’t exist and the program printed out Key doesn’t exist .
In the next section, you’ll learn how to simplify this even further!
Use Python to Check if a Key Exists: Python in Operator
The method above works well, but we can simplify checking if a given key exists in a Python dictionary even further. We can actually omit the .keys() method entirely, and using the in operator will scan all keys in a dictionary.
Let’s see how this works in practise:
ages = some_key = 'Nik' if some_key in ages: print('Key exists') else: print('Key doesn\'t exist') # Returns: Key exists
We can see here that our method actually looks very similar to the above, but we’ve been able to strip out the .keys() method entirely! This actually helps the code read a bit more plain-language.
in the next section, you’ll learn how to actually retrieve a key’s value, even if a key doesn’t exist!
Use the .get Method to Check if a Key Exists in a Python Dictionary
Working with dictionaries in Python generally involves getting a key’s value – not just checking if it exists. You learned earlier that simply indexing the dictionary will throw a KeyError if a key doesn’t exist. How can we do this safely, without breaking out program?
The answer to this, is to use the Python .get() method. The .get() method will simply return None if a key doesn’t exist. Let’s try this out:
ages = print(ages.get('Jack')) print(ages.get('Jill')) # Returns: # 43 # None
We can see here that when the .get() method is applied to return a key that exists, that key’s value is correctly returned. When a key doesn’t exist, the program continues to run, but it returns None .
What is particularly helpful about the Python .get() method, is that it allows us to return a value, even if a key doesn’t exist.
Say we wanted our program to notify us that a key didn’t exist. We could ask the .get() method to return “Key doesn’t exist!”.
Let’s see how we can do this:
ages = print(ages.get('Jill', "The key doesn't exist")) # Returns: "The key doesn't exist!"
The .get() method is a great and safe way to see if a key exists in a Python dictionary. Now, let’s learn to see whether or not a given value exists in a Python dictionary.
Check if a Value Exists in a Python Dictionary Using .values()
Similar to the Python dictionary .keys() method, dictionaries have a corresponding .values() method, which returns a list-like object for all the values in a dictionary.
Let’s see how we can access all of a dictionary’s values:
ages = print(ages.values()) #Returns: dict_values([30, 29, 31, 43, 32, 38])
We can use this to see whether or not a value exists. Say we wanted to know if the age 27 existed in our dictionary, we could write the following:
ages = some_age = 27 if some_age in ages.values(): print('Age exists!') else: print("Age doesn't exist!") # Returns: Age doesn't exist!
Now, what if we wanted to return the key or keys for a given value. We can safely do this using a list comprehension, which will have three permutations:
- Be an empty list, if the value doesn’t exist,
- Have one item, if the value exists once
- Have more than one item, if the value exists more than once
Let’s use a slightly modified dictionary to see this in action:
# Getting all keys of a certain value in a Python dictionary ages = value_43 = Python test if in dict print(value_43) # Returns: ['Jack', 'Jill']
We’ve created a list comprehension that adds each key, if the value of that key is equal to 43.
What are Python List Comprehensions? To learn more about list comprehensions, check out my comprehensive tutorial here and my in-depth video below!