2012-07-17 16 views

Respuesta

24

max takes a key argument, con ella se puede contar como máximo la forma de calcular el valor de cada elemento en un iterable. sum va a hacer muy bien aquí:

max(x, key=sum) 

Demostración:

>>> x = [[1,2,3], [4,5,6], [7,8,9], [2,2,0]] 
>>> max(x, key=sum) 
[7, 8, 9] 

Si es necesario utilizar un método diferente de la suma de sus elementos, puede especificar sus propias funciones también; esto no se limita a la pitón funciones incorporadas:

>>> def mymaxfunction(item): 
...  return sum(map(int, item)) 
... 
>>> max([['1', '2', '3'], ['7', '8', '9']], key=mymaxfunction) 
['7', '8', '9'] 
+0

me adelantó :) 1 aunque –

+0

@JonClements: Este era * * con que yo tenga para buscar nuevamente el nombre del argumento de la palabra clave. :-P –

+0

Perfecto :) No tenía idea de que podría ser tan simple. – alwbtc

0

Para completar y, como @Martijn me pegaba a la respuesta más elegante - que voy a tirar la opción antes del parámetro key= estaba disponible en Python (pero si usted está utilizando < 2.5 - que realmente debería actualizar) y cómo fea que solía ser:

x = [[1,2,3], [4,5,6], [7,8,9], [2,2,0]] 
with_idx = ((sum(v), i) for i,v in enumerate(x)) 
print x[max(with_idx)[1]] 
Cuestiones relacionadas