более питонический способ поиска элемента в списке, который максимизирует функцию - PullRequest
4 голосов
/ 11 февраля 2010

ОК, у меня есть эта простая функция, которая находит элемент списка, который максимизирует значение другой положительной функции.

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 (брррр). Может кто-нибудь показать мне более питонический и чистый способ сделать это?

Спасибо!
Manuel

1 Ответ

15 голосов
/ 11 февраля 2010
def get_max(f, s):
  return max(s, key=f)
...