Python – Test if all Values are Same in Dictionary
Last Updated :
13 Apr, 2023
Given a dictionary, test if all its values are the same.
Input : test_dict = {"Gfg" : 8, "is" : 8, "Best" : 8}
Output : True
Explanation : All element values are same, 8.
Input : test_dict = {"Gfg" : 8, "is" : 8, "Best" : 9}
Output : False
Explanation : All element values not same.
Method #1: Using loop
This is one of the ways in which this task can be performed. In this, we iterate for all the values and compare with value in dictionary, if any one is different, then False is returned.
Python3
test_dict = { "Gfg" : 5 , "is" : 5 , "Best" : 5 }
print ( "The original dictionary is : " + str (test_dict))
res = True
test_val = list (test_dict.values())[ 0 ]
for ele in test_dict:
if test_dict[ele] ! = test_val:
res = False
break
print ( "Are all values similar in dictionary? : " + str (res))
|
Output
The original dictionary is : {'Gfg': 5, 'is': 5, 'Best': 5}
Are all values similar in dictionary? : True
Time complexity: O(n), where n is the number of key-value pairs in the dictionary.
Auxiliary space: O(1), as the memory usage does not depend on the size of the input.
Method #2: Using set() + values() + len()
This is yet another way in which this task can be performed. In this, we extract all the values using values() and set() is used to remove duplicates. If length of the extracted set is 1, then all the values are assumed to be similar.
Python3
test_dict = { "Gfg" : 5 , "is" : 5 , "Best" : 5 }
print ( "The original dictionary is : " + str (test_dict))
res = len ( list ( set ( list (test_dict.values())))) = = 1
print ( "Are all values similar in dictionary? : " + str (res))
|
Output
The original dictionary is : {'Gfg': 5, 'is': 5, 'Best': 5}
Are all values similar in dictionary? : True
Time complexity: O(n), where n is the number of key-value pairs in the dictionary.
Auxiliary space: O(n), as we create a list of values from the dictionary.
Method #3: Using values()+len()+count() methods
Python3
test_dict = { "Gfg" : 5 , "is" : 5 , "Best" : 5 }
print ( "The original dictionary is : " + str (test_dict))
x = list (test_dict.values())
res = False
if (x.count(x[ 0 ]) = = len (x)):
res = True
print ( "Are all values similar in dictionary? : " + str (res))
|
Output
The original dictionary is : {'Gfg': 5, 'is': 5, 'Best': 5}
Are all values similar in dictionary? : True
Time complexity: O(n), where n is the number of key-value pairs in the dictionary.
Auxiliary space: O(n), where n is the number of key-value pairs in the dictionary.
Method #4: Using values() and len() methods
Python3
test_dict = { "Gfg" : 5 , "is" : 5 , "Best" : 5 }
print ( "The original dictionary is : " + str (test_dict))
x = list (test_dict.values())
res = False
if ([x[ 0 ]] * len (x) = = x):
res = True
print ( "Are all values similar in dictionary? : " + str (res))
|
Output
The original dictionary is : {'Gfg': 5, 'is': 5, 'Best': 5}
Are all values similar in dictionary? : True
Time complexity: O(n), where n is the number of values in the dictionary.
Auxiliary space: O(n), where n is the number of values in the dictionary.
Method #5: Using Counter() function
Python3
from collections import Counter
test_dict = { "Gfg" : 5 , "is" : 5 , "Best" : 5 }
print ( "The original dictionary is : " + str (test_dict))
x = list (test_dict.values())
res = False
freq = Counter(x)
if ( len (freq) = = 1 ):
res = True
print ( "Are all values similar in dictionary? : " + str (res))
|
Output
The original dictionary is : {'Gfg': 5, 'is': 5, 'Best': 5}
Are all values similar in dictionary? : True
Time Complexity:O(n)
Auxiliary Space:O(n)
Method #6: Using all() function
This approach uses the built-in all() function to check if all values in the dictionary are equal to the first value.
Python3
test_dict = { "Gfg" : 5 , "is" : 5 , "Best" : 5 }
print ( "The original dictionary is : " + str (test_dict))
test_val = list (test_dict.values())[ 0 ]
res = all (val = = test_val for val in test_dict.values())
print ( "Are all values similar in dictionary? : " + str (res))
|
Output
The original dictionary is : {'Gfg': 5, 'is': 5, 'Best': 5}
Are all values similar in dictionary? : True
Time Complexity: O(n)
Auxiliary Space: O(n)
Method #7 : Using values()+len()+operator.countOf() methods
Approach
- Extract the dictionary values using values() method
- Initially set res to False
- Check whether the count of first element of values list is equal to length of list
- If yes set res to True
- Display res
Python3
test_dict = { "Gfg" : 5 , "is" : 5 , "Best" : 5 }
print ( "The original dictionary is : " + str (test_dict))
x = list (test_dict.values())
res = False
import operator
if (operator.countOf(x,x[ 0 ]) = = len (x)):
res = True
print ( "Are all values similar in dictionary? : " + str (res))
|
Output
The original dictionary is : {'Gfg': 5, 'is': 5, 'Best': 5}
Are all values similar in dictionary? : True
Time Complexity : O(N)
Auxiliary Space : O(N)
N- no of iterations took for checking the count of first element in list
Method #8 : Using numpy:
Algorithm:
- Import the numpy library.
- Initialize the dictionary with values.
- Convert the values of the dictionary to a list using the values() method and convert it to a numpy array using the np.array() method.
- Use the np.unique() method on the numpy array to get unique values.
- Get the size of the resulting numpy array using the size attribute.
- Check if the size of the unique values is 1.
- If the size is 1, set the result to True, else set it to False.
- Print the result.
Python3
import numpy as np
test_dict = { "Gfg" : 5 , "is" : 5 , "Best" : 5 }
print ( "The original dictionary is : " + str (test_dict))
res = np.unique( list (test_dict.values())).size = = 1
print ( "Are all values similar in dictionary? : " + str (res))
|
Output:
The original dictionary is : {'Gfg': 5, 'is': 5, 'Best': 5}
Are all values similar in dictionary? : True
Time complexity: O(nlogn), where n is the number of values in the dictionary. The time complexity is dominated by the np.unique() method, which has a time complexity of O(nlogn).
Space complexity: O(n), where n is the number of values in the dictionary. This is because we create a new list and a new numpy array to store the values of the dictionary.
Please Login to comment...