On Wed, Sep 7, 2011 at 5:24 PM, Miki Tebeka <miki.teb...@gmail.com> wrote:
> I guess enumerate is the best way to check for first argument. Note that if 
> someone passes you the iterator as argument you have now way of checking if 
> the consumed items from it.
>
> istail can be implemented using itertools.chain, see 
> https://gist.github.com/1202260

For the archives, if Gist ever goes down:

from itertools import chain

def istail(it):
    '''Check if iterator has one more element. Return True/False and
    iterator.'''
    try:
        i = next(it)
    except StopIteration:
        return False, it

    try:
        j = next(it)
        return False, chain([i, j], it)
    except StopIteration:
        return True, chain([i], it)


t, it = istail(iter([]))
print t, list(it)
t, it = istail(iter([1]))
print t, list(it)
t, it = istail(iter([1, 2]))
print t, list(it)
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to