Что идиоматический путь состоит в том, чтобы сделать maximumBy (функция высшего порядка взятие функции сравнения для теста) в списке списков, где сравнение, которое мы хотим сделать, является суммой списка в 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
Начиная с Python 2.5, вы можете использовать max с ключевым параметром:
>>> max(a, key=sum)
[4, 5, 6]
Это не очень эффективно, но:
reduce(lambda x,y: x if sum(x)>sum(y) else y, [[1,2,3],[4,5,6],[1,3,5]])