manière plus pythonique de l'élément trouvant dans la liste qui maximise une fonction
-
19-09-2019 - |
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
La solution
def get_max(f, s):
return max(s, key=f)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow