更符合Python风格的在列表中找到最大化函数的元素的方法

4 投票
1 回答
1054 浏览
提问于 2025-04-15 19:08

好的,我有一个简单的函数,它可以找到列表中使另一个正函数值最大的元素。

def get_max(f, s):
    # f is a function and s is an iterable

    best = None
    best_value = -1

    for element in s:
        this_value = f(element)
        if this_value > best_value:
            best = element
            best_value = this_value
    return best

但是我觉得这个函数写得太长了,做的事情其实很简单。实际上,它让我想起了Java(呜呜)。有没有人能给我展示一个更符合Python风格、更简洁的方法来实现这个功能呢?

谢谢!
Manuel

1 个回答

15

在编程中,有时候我们会遇到一些问题,可能会让我们感到困惑。比如,有人可能会问,为什么在某些情况下,代码的运行结果和我们预期的不一样。这种情况通常是因为我们对代码的理解不够深入,或者没有考虑到某些细节。

为了更好地理解这些问题,我们可以通过查看其他人的经验和解决方案来学习。比如,在StackOverflow上,有很多程序员分享他们的经验和解决方法,这些内容可以帮助我们更快地找到问题的根源。

总之,编程是一门需要不断学习和实践的技能,遇到问题时不要气馁,多看看别人的解决方案,慢慢你就会变得更加熟练。

def get_max(f, s):
  return max(s, key=f)

撰写回答