Python - How To Find Maximum Value in Python Dictionary

ID : 168

viewed : 193

Tags : PythonPython Dictionary

vote vote

99

This tutorial describes how to get a key with maximum value in . It also lists some example codes to clarify the concepts as the method has changed from previous Python versions.

Use the operator.itemgetter() Method to Get Key With Maximum Value

We don’t need to create a new list to iterate over the dictionary’s (key, value) pair. We can use stats.iteritems() for this purpose. It returns an iterator over the (key, value) pair of the dictionary.

You can use the operator.itemgetter(x) method to get the callable object that will return the x-th element from the object. Here because the object is the (key, value) pair, operator.itemgetter(1) refers to the element at the index of 1, that is, the value.

As we want a key with a maximum value, so we will encapsulate the methods in the max function.

A basic example code for this method is given below:

import operator  stats = {'key1':20, 'key2':35, 'key3': 44} max_key = max(stats.iteritems(), key=operator.itemgetter(1))[0] print(max_key) 

Output:

key3 

Note: Even if there is another key with a 44 value, this method will return one of the two equally maximum values.

Also, please note that iteritems() can raise a RunTimeException while adding or removing items from the dictionary, and dict.iteritems is removed in Python 3.

Use the dict.items() Method for Python 3.x to Get Key With Maximum Value in Dictionary

In Python 3.x, you can use the dict.items() method to iterate over key-value pairs of the dictionary. It is the same method as dict.iteritems() in Python 2.

An example code for this method is given below:

import operator  stats = {'key1':20, 'key2':35, 'key3': 44} max_key = max(stats.items(), key=operator.itemgetter(1))[0] print(max_key) 

Output:

key3 

a General and Memory Efficient Solution to Get Key With Maximum Value in Dictionary

Interestingly, there is another solution that works for both Python 2 and Python 3. The solution uses the lambda function to obtain the key, and the max method to ensure the obtained key is maximum.

The basic code for this approach is given below:

import operator  stats = {'key1':20, 'key2':35, 'key3': 44} max_key = max(stats, key=lambda key: stats[key]) print(max_key) 

Output:

key3 

Use max() and dict.get() Methods to Obtain Key With Maximum Value in Dictionary

Another solution to this problem can be simply using the built-in max() method. It is provided with the stats to obtain maximum value from, and to return the key with maximum value, the dict.get() method is used.

An example code is given below:

import operator  stats = {'key1':20, 'key2':35, 'key3': 44} max_key = max(stats, key = stats.get) print(max_key) 

Output:

key3 

  • Related HOW TO?