在列表中查找最大化函数的元素的更Pythonic方式

发布于 2024-08-21 00:32:06 字数 445 浏览 12 评论 0原文

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

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(brrrr)。 谁能告诉我一种更Pythonic和更干净的方法来做到这一点?

谢谢!
曼努埃尔

OK, I have this simple function that finds the element of the list that maximizes the value of another positive function.

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

But I find it very long for the simple work it does. In fact, it reminds me of Java (brrrr).
Can anyone show me a more pythonic and clean way of doing this?

Thanks!
Manuel

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

等风来 2024-08-28 00:32:06
def get_max(f, s):
  return max(s, key=f)
def get_max(f, s):
  return max(s, key=f)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文