[python-users] Last iteration? - comp.lang.python

Rex Turnbull RexTurnbull at web.de
Mi Okt 17 14:52:46 CEST 2007


Hi pyCologne,

beim stöbern der comp.lang.python bin ich über folgende Diskussion 
getappert:
http://groups.google.com/group/comp.lang.python/browse_thread/thread/34c7398eec5a92cd/68f0aaef68e5ca0e?lnk=raot

Darin fand ich die vorgeschlagene Lösung von 'Peter Otten' sehr schön 
und habs schon in meine Bibliotheken verewigt. Ich gebe es zu Eurer 
Verwendung und Verbesserung weiter. Ich hoffe die Einrückung ist korrekt 
mitgekommen.

Rex


def mark_last(items):
    """
    >>> list(mark_last([]))
    []
    >>> list(mark_last([1]))
    [(True, 1)]
    >>> list(mark_last([1,2]))
    [(False, 1), (True, 2)]
    >>> for is_last, wert in mark_last(range(4)):
    ...     if is_last: print "letzter Wert:",
    ...     print wert
    ...
    0
    1
    2
    letzter Wert: 3
    """
    items = iter(items)
    last = items.next()
    for item in items:
        yield False, last
        last = item
    yield True, last









Mehr Informationen über die Mailingliste python-users