Welcome, guest | Sign In | My Account | Store | Cart
"""
Example (and doctest):

>>> for n, islast in iter_islast(range(4)):
...   if islast:
...       print "last but not least:",
...   print n
... 
0
1
2
last but not least: 3

>>> list(iter_islast(''))
[]
>>> list(iter_islast('1'))
[('1', True)]
>>> list(iter_islast('12'))
[('1', False), ('2', True)]
>>> list(iter_islast('123'))
[('1', False), ('2', False), ('3', True)]
>>>
"""

def iter_islast(iterable):
    """ iter_islast(iterable) -> generates (item, islast) pairs

Generates pairs where the first element is an item from the iterable
source and the second element is a boolean flag indicating if it is the
last item in the sequence.
"""

    it = iter(iterable)
    prev = it.next()
    for item in it:
        yield prev, False
        prev = item
    yield prev, True

History