Question

OK, j'ai cette fonction simple qui trouve l'élément de la liste qui maximise la valeur d'une autre fonction positive.

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

Mais je trouve très longtemps pour que le simple travail qu'il fait. En fait, il me fait penser à Java (brrr). Quelqu'un peut-il me montrer d'une manière plus pythonique et propre de le faire?

Merci!
Manuel

Était-ce utile?

La solution

def get_max(f, s):
  return max(s, key=f)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top