returning True, False or None

Mick Krippendorf mad.mick at gmx.de
Fri Feb 4 21:20:54 EST 2005


Daniel Bickett wrote:
> 
> >>> def boolhunt( items ):
> ...     falseExists = False
> ...     for item in items:
> ...         if item is True:
> ...             return True
> ...         elif item is False and not falseExists:
> ...             falseExists = True
> ...     if falseExists:
> ...         return False



Or even shorter:

 >>> def boolhunt(items):
 ...    result = None
 ...    for item in items:
 ...        if item:
 ...            return True
 ...        elif result is None and item is False:
 ...            result = False
 ...    return result 


Or like the Melmacians would do it:

 >>> def boolgen(items):
 ...     result = None
 ...     for item in items:
 ...         if result:
 ...             raise StopIteration
 ...         elif item is not None:
 ...             result = item
 ...         yield result

 >>> [item for item in boolgen(a_list)][-1]


Mick.



More information about the Python-list mailing list