Open In App

Search for Value in the Python Dictionary with Multiple Values for a Key

Last Updated : 08 Feb, 2024
Improve
Improve
Like Article
Like
Save
Share
Report

In Python, searching for a value in a dictionary with multiple values for a key involves navigating through key-value pairs efficiently. This scenario often arises when a key maps to a list, tuple, or other iterable as its value. In this article, we will explore four different approaches to searching for value in the dictionary with multiple values for a key.

Search for Value in the Dictionary with Multiple Values for a Key

Below are some of the ways by which can Search for Value in the Dictionary with Multiple Values for a Key in Python.

Search for Value in the Dictionary with Multiple Values for a Key Using a List as the Value

The below Python code defines a function search_value to search for a specific value within a list associated with a given key in a dictionary. The example usage performs searching for the value ‘90‘ in the ‘Math‘ key, returning True as the output.

Python3




# Using a List as the Value
students = {'Math': [85, 90, 78], 'Physics': [92, 88, 95]}
 
def search_value(dictionary, key, target_value):
    if key in dictionary:
        values = dictionary[key]
        if target_value in values:
            return True
    return False
 
# printing output
result = search_value(students, 'Math', 90)
print(result)


Output

True




Search for Value in the Dictionary with Multiple Values for a Key Using defaultdict from collections

The below Python code uses defaultdict from the collections module to create a dictionary with default values as lists. The function search_value is then used to search for a specific value within the list associated with a given key (‘Math’ in this case). The output is True, indicating that the target value ‘90‘ is found in the list associated with the ‘Math‘ key.

Python3




# Using defaultdict from collections
from collections import defaultdict
 
students = defaultdict(list)
students['Math'].extend([85, 90, 78])
students['Physics'].extend([92, 88, 95])
 
def search_value(dictionary, key, target_value):
    if key in dictionary:
        values = dictionary[key]
        if target_value in values:
            return True
    return False
 
# printing output
result = search_value(students, 'Math', 90)
print(result)


Output

True




Search for Value in the Dictionary with Multiple Values for a Key Using a Dictionary of Sets

The below Python code represents a dictionary where each key maps to a set of values. The function search_value is then employed to search for a specific value within the set associated with a given key (‘Math‘ in this case). The example usage demonstrates searching for the value ‘90‘ in the ‘Math‘ key, returning True as the output.

Python3




# Using a Dictionary of Sets:
students = {'Math': {85, 90, 78}, 'Physics': {92, 88, 95}}
 
def search_value(dictionary, key, target_value):
    if key in dictionary:
        values = dictionary[key]
        if target_value in values:
            return True
    return False
 
# printing output
result = search_value(students, 'Math', 90)
print(result)


Output

True




Search for Value in the Dictionary with Multiple Values for a Key Using the get() Method

The below code Python code demonstrates searching for a specific value within a list associated with a given key in a dictionary using the get() method. The function search_value retrieves the values associated with the key using get(key, []), which defaults to an empty list if the key is not present. The example usage shows searching for the value ‘90‘ in the ‘Math‘ key, returning True as the output.

Python3




# Using the get() Method
students = {'Math': [85, 90, 78], 'Physics': [92, 88, 95]}
 
def search_value(dictionary, key, target_value):
    values = dictionary.get(key, [])
    return target_value in values
 
result = search_value(students, 'Math', 90)
# printing output
print(result)


Output

True




Conclusion

In conclusion, when working with dictionaries having multiple values for a key, various approaches can be used for efficient value search. Utilizing a list as the value provides simplicity, while defaultdict ensures default values for absent keys. A dictionary of sets offers uniqueness in values, and using the get() method allows for concise searches, as demonstrated in the examples. The choice of method depends on the specific requirements and nature of the data stored in the dictionary.



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads