python - 通过Python中的元素总和查找列表列表的最大值

标签 python list haskell higher-order-functions

惯用的方法是什么maximumBy (higher order function takes a comparison function for the test),在列表的列表中,我们要进行的比较是列表的总和,在Python中?

这是一个 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

最佳答案

从 Python 2.5 开始,您可以使用 max有一个关键参数:

>>> max(a, key=sum)
[4, 5, 6]

关于python - 通过Python中的元素总和查找列表列表的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2763015/

相关文章:

python - 如何在 Kivy 中制作重复的旋转动画?

python - python中字典的排序列表

haskell - 如何终止在 `IO` monad 中运行的计算?

haskell - 有没有关于使用 Alex + Happy 构建简单解释器的教程?

python - gdb python 中的 container_of 宏

python - Pylint 加载插件在 VS 代码中失败

java - Jython 是我的代码库中的负担吗?

python - 将元素附加到嵌套列表中的列表 - python

html - 带有按钮的可扩展目录

haskell - 如何在 Haskell 中处理无限的 IO 对象列表?