[Guido]
> The argument that first(it) and next(it) "look the same" doesn't convince
> me;
I'm sorry - I guess then I have absolutely no idea what you were
trying to say, and read it completely wrong.
> if these look the same then all function applications look the same, and
> that can certainly not have been Meertens' intention.
No argument on that from me ;-)
> But if everyone thinks that first() should raise, fine, this thread is way
> too long
> already (I should have kept it muted :-).
It was being discussed. The 1-argument more-itertools `first()` does
raise on an exhausted iterator, and that does make most sense to me.
In my algorithms I usually "know" I'm not trying to take an element
from an empty iterable, and have no use for a default value in such a
case. Since there's no non-destructive way to assert that the
iterable is not exhausted, raising an exception if it is exhausted is
most useful.
_empty = object()
a = first(iterable, _empty)
if a is _empty:
raise ...
is a PITA by comparison, as is my _current_ idiom:
for a in iterable:
break
else:
raise ...
Plain old
a = first(iterable)
would be perfect - but only if it raised.
_______________________________________________
Python-ideas mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at
https://mail.python.org/archives/list/[email protected]/message/4F5YOEB5P2KDRNJGAKGPYN5AUSCYRF7Z/
Code of Conduct: http://python.org/psf/codeofconduct/