Pythonで、リストのリストでmaximumBy (テスト用の比較関数を使用する高階関数)を実行する慣用的な方法は何ですか?ここで、比較したいのはリストの合計です。
Haskellの実装と出力例は次のとおりです。
> maximumBy (compare `on` sum) [[1,2,3],[4,5,6],[1,3,5]]
> [4,5,6]
そして、完全を期すために、これらの基本ライブラリ関数の実装(reduceなどを使用したい場合:)
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