¿Cuál es la forma idiomática de hacer maximumBy (función de orden superior tomando una función de comparación para la prueba), en una lista de listas, donde la comparación que queremos hacer es la suma de la lista, en Python?Encontrar el máximo de una lista de listas por suma de elementos en Python
Aquí es una aplicación y una salida de ejemplo Haskell:
> maximumBy (compare `on` sum) [[1,2,3],[4,5,6],[1,3,5]]
> [4,5,6]
e implementaciones de las funciones de la biblioteca de base, simplemente para la corrección (en caso de que desee utilizar reducir o algo :)
maximumBy cmp xs = foldl1 maxBy xs
where
maxBy x y = case cmp x y of GT -> x; _ -> y
k `on` f = \x y -> f x `k` f y
sum = foldl' (+) 0
¡Haha, solución increíble! –
+1. Corto, claro y preciso. Muy pitónico. –
max (a) parece hacer lo mismo. – titaniumdecoy