El diccionario "a" es una estructura iterable en python. Cuando recorre con for x in a
, está repitiendo las teclas en el diccionario.
En la segunda línea, la función máxima toma dos argumentos: un objeto iterable (a) y una función opcional "clave". La función de clave se usará para evaluar el valor de los elementos en a; se devolverá el más grande.
Ejemplos:
>>> a = dict(((1,3),(0,-1),(3,21)))
>>> for x in a:
... print x #output the value of each item in our iteration
...
0
1
3
señalar aquí que sólo las "claves" se emiten. Al pasar cada una de estas teclas para "obtener" ...
>>> a.get(0)
-1
>>> a.get(1)
3
>>> a.get(3)
21
Obtenemos el valor para cada tecla. Ahora mira cómo funciona max.
>>> b=[2, 3, 5, 6, 4]
>>> max(b)
6
>>> def inverse(x):
... return 1.0/x
...
>>> max(b, key=inverse)
2
Como puede ver, max (de forma predeterminada) solo encontrará el número más grande en nuestra lista iterable. Si definimos la función "inversa", devolverá el artículo más grande en b para el cual inverse(item)
es el más grande.
combinar estas dos preguntas y vemos que max(a, key=a.get)
va a devolver el item
en a
para los que el valor de a.get(item)
es más grande. es decir, la clave correspondiente al valor más grande.
Si realmente te interesa, puedes intentar usar una función lambda: 'max (a, key = lambda x: a [x])' – ProdigySim