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
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?
def get_max(f, s): return max(s, key=f)