[Brett Cannon]
> I'm also sure the docs will say "Returns the first item yielded by the iterable." That
> last word is a dead give-away on how the choice will be made on any collection,
> Sequence or not. (Doubly true if this goes into itertools.)
>
> There's also the contingency of users who will think of the question "how would
> this function think of what "first" is for non-order collections?" will simply think
> "iterator" and be done with thinking.
>
> IOW I understand the desire to have a function that is fully self-explanatory,
> but I view take() as more ambiguous as it doesn't say where you will take
> form (e.g. are you going to treat a list as a deque or a stack?), but first() has
> a clear understanding the instant you think about this operating on iterables
> (which is as universal of a data structure concept across collection types as
> we have).
I agree that, for people who understand Python, "with respect to iteration order" is the only meaning "first" _could_ reasonably have. But I wouldn't object much to changing the name to, e.g., "firstiter" or "iterfirst" if people are overly concerned about that.
BTW, you can go a long way in Python without knowing anything about `iter()` or `next()`. But not without mastering `for` loops. That's why I prefer to say that, for ordinary cases,
a = first(it)
has the same effect as:
for a in it:
break
with a note for "advanced" users that this is also the same as next(iter(it)).