Introduction :
In this tutorial, we will learn how to find the key of a dictionary with maximum value in python. We will learn different ways to solve this problem. In these examples, we will use one predefined dictionary.
Python dictionary is used to store key-value pairs. Using the keys, we can access the values. Finding out the largest key is easy, but finding out the largest value and the key associated with it is a little bit tricky.
Method 1: Find using the maximum key :
In this approach, we will find out the largest value at first. Then, we will find out the key for that value.
dict = {"a" : 11, "b" : 2, "c" : 10, "d" : 14}
values = list(dict.values())
keys = list(dict.keys())
m = max(values)
i = values.index(m)
print(keys[i])
Here, dict is the given dictionary. values hold the list of all dictionary values and keys holds the list of all dictionary keys. m is the maximum of all values in the dictionary and i is the index of the maximum value. In the final line, we are printing the key of the maximum value.
Method 2: Using operator :
Using operator module, it requires only one line :
import operator
dict = {"a" : 11, "b" : 2, "c" : 10, "d" : 14}
maxValue = max(dict.items(), key = operator.itemgetter(1))[0]
print(maxValue)
It will print the same output.
Method 3 : Using max() :
If you don’t want to import any extra module, you can simply use the python max() function. This function is defined as below :
max(iterable[, default, key]) -> value
It takes three arguments, one iterable and two more optional arguments default and key.
-
iterable: It is an iterable object. This is always required.
-
default: This is the default value to return if the first argument iterable is empty. This is an optional argument.
-
key: Optional argument. This is a function that is applied to each value of the iterable. Using this function, we can change the way it works.
It returns the maximum item found in the iterable. If the key is provided, it will find the maximum value with natural ordering. Else, it will use the key function to find out the maximum value.
Our goal is to find out the maximum value and its key in a dictionary. We can use the dictionary items() method. It returns a list of all dictionary key, value pairs. Also, we will pass one function lambda i : i[1]) as the key i.e. it will always compare the second element of each iterable element. It will return the item with the largest second value.
dict = {"a" : 1, "b" : 2, "c" : 10, "d" : 14}
print(max(dict.items(),key = lambda i : i[1]))
If you execute this program, it will print the below output :
('d', 14)
Method 4: Get only the key using max() :
Method 3, as we have seen above, can be used to get both key-value pairs with the maximum value in a dictionary. But, if you need only the key, you can pass the dictionary as the first argument and dict.get as the second argument. It looks like as below :
dict = {"a" : 1, "b" : 2, "c" : 10, "d" : 14}
print(max(dict,key = dict.get))
It will print d as the output.
get() is used to get the value for a key. Using it, max() finds the key with the largest value.