palabra - Python: encontrar el valor máximo en la segunda columna de una lista anidada
valor maximo de una lista en python (2)
Usa el argumento key
.
max(alk..., key=operator.itemgetter(1))
Tengo una lista como esta
alkaline_earth_values = [[''beryllium'', 4], [''magnesium'', 12],[''calcium'', 20], [''strontium'', 38], [''barium'', 56], [''radium'', 88]]
Si simplemente uso el método max(list)
, devolverá el estroncio de la respuesta, que sería correcto si estuviera tratando de encontrar el nombre máximo, sin embargo, estoy tratando de devolver el elemento cuyo número entero es el más alto.
max(alkaline_earth_values, key=lambda x: x[1])
La razón por la que esto funciona es porque el argumento clave de la función max especifica una función que se llama cuando max quiere saber el valor por el cual se buscará el elemento máximo. max llamará a esa función para cada elemento de la secuencia. Y "lambda x: x [1]" crea una pequeña función que toma una lista y devuelve el primer elemento (que comienza desde cero). Asi que
k = lambda x: x[1]
es lo mismo que decir
def k(l):
return l[1]
pero más corto y agradable de usar en situaciones como esta.