Cómo encontrar el valor máximo en el Diccionario Python

  1. Utiliza el método operator.itemgetter() para obtener la clave con el valor máximo
  2. Use el método dict.items() para Python 3.x para obtener la clave con el máximo valor en el diccionario
  3. una solución general y eficiente de memoria para obtener la clave con el máximo valor en el diccionario
  4. Use los métodos max() y dict.get() para obtener la clave con el máximo valor en el diccionario

Este tutorial describe cómo obtener una clave con valor máximo en Python. También se enumeran algunos códigos de ejemplo para aclarar los conceptos, ya que el método ha cambiado con respecto a las versiones anteriores de Python.

Utiliza el método operator.itemgetter() para obtener la clave con el valor máximo

No necesitamos crear una nueva lista para iterar sobre el par (clave, valor) del diccionario. Podemos usar stats.iteritems() para este propósito. Devuelve un iterador sobre el par (clave, valor) del diccionario.

Puede usar el método operator.itemgetter(x) para obtener el objeto llamable que devolverá el elemento x-th del objeto. Aquí, debido a que el objeto es el par (key, value), operator.itemgetter(1) se refiere al elemento en el índice de 1, es decir, el value.

Como queremos una clave con un valor máximo, encapsularemos los métodos en la función max.

A continuación se da un código de ejemplo básico para este método:

import operator

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

Resultado:

key3

Nota: Aunque haya otra clave con un valor de 44, este método devolverá uno de los dos valores máximos iguales.

También, por favor, note que iteritems() puede levantar una RunTimeException mientras añade o elimina elementos del diccionario, y dict.iteritems se elimina en Python 3.

Use el método dict.items() para Python 3.x para obtener la clave con el máximo valor en el diccionario

En Python 3.x, puedes usar el método dict.items() para iterar sobre los pares key-value del diccionario. Es el mismo método que dict.iteritems() en Python 2.

A continuación se muestra un código de ejemplo para este método:

import operator

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

Resultado:

key3

una solución general y eficiente de memoria para obtener la clave con el máximo valor en el diccionario

Curiosamente, hay otra solución que funciona tanto para Python 2 como para Python 3. La solución utiliza la función lambda para obtener la clave, y el método max para asegurar que la clave obtenida sea máxima.

El código base para este enfoque se da a continuación:

import operator

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

Resultado:

key3

Use los métodos max() y dict.get() para obtener la clave con el máximo valor en el diccionario

Otra solución a este problema puede ser simplemente usar el método max() incorporado. Se proporciona con los stats para obtener el valor máximo de, y para devolver la key con el valor máximo, se utiliza el método dict.get().

A continuación se da un código de ejemplo:

import operator

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

Resultado:

key3

Artículo relacionado - Python Dictionary

  • Índice del diccionario de Python
  • Convertir CSV en diccionario en Python