Search a sequence for its minimum and stop as soon as the lowest possible value is found
Paul Rubin
no.email at nospam.invalid
Sun Jan 8 05:02:02 EST 2017
Paul Rubin <no.email at nospam.invalid> writes:
> Doesn't look that way to me:
> >>> minabs([5,3,1,2,4])
> 1
There's a different problem though:
>>> minabs([1,2,3,0])
1
I think Python's version of iterators is actually buggy and at least the
first element of the rest of the sequence should be preserved. There
are ways to fake it but they're too messy for something like this. It
should be the default and might have been a good change for Python 3.
def minabs2(xs):
def z():
for x in xs:
yield x
if x==0: break
return min((abs(x),x) for x in z())[1]
seems to work, but is ugly. Maybe there's something better.
More information about the Python-list
mailing list