Что такое идиоматический способ сделать maximumBy (функция более высокого порядка, использующая функцию сравнения для теста), в списке списков, где сравнение, которое мы хотим сделать, это сумма списка, в Python?Поиск максимального списка списков по сумме элементов в Python
Вот Haskell реализация и пример вывод:
> maximumBy (compare `on` sum) [[1,2,3],[4,5,6],[1,3,5]]
> [4,5,6]
И реализация этих базовых функций библиотеки, просто для полноты картины (в случае, если вы хотите использовать уменьшить или что-то :)
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
Ха-ха, удивительное решение! –
+1. Короткие, четкие и точные. Очень pythonic. –
max (a) похоже на то же самое. – titaniumdecoy