2012-09-22 22 views
7

Duplicar posible:
Getting key with maximum value in dictionary?Encontrar el valor más grande en un diccionario

Digamos que tengo un diccionario que se compone de teclas de números enteros y valores enteros. Quiero encontrar la clave entera con el valor correspondiente más alto. ¿Hay algún método integrado para hacer algo como esto o necesito implementar algún tipo de algoritmo de fusión/ordenación?

+0

Ya respondieron en StackOverflow [aquí] (http://stackoverflow.com/a/1747244/831878) –

+1

¿Has intentado encontrar una respuesta existente? Vea esto: http://stackoverflow.com/questions/268272/getting-key-with-maximum-value-in-dictionary - la solución es solo esto: 'max (stats.iteritems(), key = operator.itemgetter (1)) ' – Tadeck

+0

max (stats, key = stats.itemgetter (1)) es el más votado de http://stackoverflow.com/questions/268272/getting-key-with-maximum-value-in-dictionary – jimifiki

Respuesta

39

Usted sólo puede utilizar max

>>> x = {1:2, 3:6, 5:4} 
>>> max(x, key=lambda i: x[i]) 
3 

O simplemente:

>>> max(x, key=x.get) 
3 
5

Existen métodos para hacer eso, y forma preferida es usar esto:

import operator 

result = max(your_dict.iteritems(), key=operator.itemgetter(1))[0] 

Nota, que para sus necesidades operator.itemgetter(1) podría reemplazarse por lambda x: x[1].

+0

Es hay alguna ventaja de usar 'your_dict.iteritems()' solo con 'your_dict'? – verdesmarald

+0

@verdesmarald: Dan diferentes resultados ('your_dict.iteritems()' devuelve algo más que 'your_dict'), por lo que no son comparables. – Tadeck

+0

Lo siento, me refiero a esta pregunta en particular, donde 'max (your_dict.iteritems()) [0]' da el mismo resultado que solo 'max (your_dict)'. – verdesmarald

Cuestiones relacionadas