Python Program to Display Keys associated with Values in Dictionary
In this tutorial, you will learn how to write a Python program that will display the keys associated with a particular value in a dictionary. A dictionary can have multiple values associated with a single key with the help of a list. From the given dictionary we will find the key associated with a given value and print the key as our output.
Look at the examples to understand the input and output format.
Input:
dic={'x': [1, 2, 3], 'y': [11], 'z': [8, 4]}
value=[2, 4]
Output: ['x', 'z']
Input:
dic={'a': [1, 2, 3], 'b': [5, 6], 'c': [8, 4]}
value=[5, 1]
Output: ['b', 'a']
To solve this problem in python, we can use the following approaches-
- using a loop and items() method
- using list comprehension and any() method
We will discuss both approaches in detail below.
Approach 1: loop and items()
In this approach, we will use the items()
method to get all the key-value pairs from the dictionary. Then we will use a for loop to traverse the list and get the key of the particular value.
The items()
method returns an object that stores the list of key-value pairs of a dictionary.
Algorithm
Follow the algorithm to understand the approach better.
Step 1- Initialise a dictionary with keys and their values
Step 2- Initialise a value list for which we have to find the keys
Step 3- Run a loop to iterate through the key-values returned by items()
Step 4- Find the key of the values in the list and store them in a new list
Step 5- Print the new list as output
Step 6- The new list will have all the keys
Python Program 1
In this program, we have declared a dictionary that will have keys and a list of values. We have to find the keys of certain values which will be given in the form of a list.
# find key of a given value
# Using loop and items()
# initializing dictionary
dic = {'A' : [1, 3], 'B' : [4, 7], 'C' : [10, 12]}
# print original dictionary
print("The original dictionary : " ,dic)
# initializing value list
val_list = [1,3,12]
# finding key
temp = {}
for key, vals in dic.items():
for val in vals:
temp[val] = key
key_result = [temp[ele] for ele in val_list]
# printing result
print("The keys mapped to ", val_list, " are : " ,key_result)
The original dictionary : {'A': [1, 3], 'B': [4, 7], 'C': [10, 12]}
The keys mapped to [1, 3, 12] are : ['A', 'A', 'C']
Approach 2: list comprehension and any()
In this approach, we will use the list comprehension and the any()
method to find keys of some values. The any()
method is a built-in method of Python that returns True if any of the items in an iterable are True, otherwise, it returns False. The iterable can be a set, list, tuple or dictionary.
Algorithm
Follow the algorithm to understand the approach better.
Step 1- Initialise a dictionary with keys and their values
Step 2- Print the original dictionary
Step 3- Initialise a value list for which we have to find the keys
Step 4- Make a new list that will store the keys to the value
Step 5- Print the new list as output
Python Program 2
In this program, we have declared a dictionary that will have keys and a list of values. To get the items of the dictionary, which are key-value pairs, we have used the items()
method.
# find key of a given value
# Using list comprehension and any()
# initializing dictionary
d1 = {'A' : [1, 2, 3], 'B' : [5, 6], 'C' : [7, 8, 9]}
# print dictionary
print("The original dictionary : ",d1)
# initializing value list
val_list = [6, 9]
# finding key
# Using list comprehension and any()
result = [key for key, val in d1.items() if any(y in val for y in val_list)]
# printing result
print("The keys mapped to " ,val_list, " are : ",result)
The original dictionary : {'A': [1, 2, 3], 'B': [5, 6], 'C': [7, 8, 9]}
The keys mapped to [6, 9] are : ['B', 'C']
Conclusion
In this tutorial, you have learnt how to find keys associated with some given values in a dictionary using two different approaches. In the first approach, we have used a loop and items()
method. In the second approach, we have used list comprehension and the any()
method.