David Isaac wrote:
> 2. Is this a good argmax (as long as I know the iterable is finite)?
> def argmax(iterable): return max(izip( iterable, count() ))[1]
Other than the subtle difference that Peter Otten pointed out, that's a
good method.
However if the iterable is a list, it's cleaner (and more efficient) to
use seq.index(max(seq)). That way you won't be creating and comparing
all those tuples.
def argmax(it):
try:
it.index
except AttributeError:
it = list(it)
# Or if it would too expensive to convert it to list:
#return -max((v, -i) for i, v in enumerate(it))[1]
return it.index(max(it))
--Ben
--
http://mail.python.org/mailman/listinfo/python-list