returning True, False or None
Steve Holden
steve at holdenweb.com
Fri Feb 4 13:04:16 EST 2005
Steven Bethard wrote:
> I have lists containing values that are all either True, False or None,
> e.g.:
>
> [True, None, None, False]
> [None, False, False, None ]
> [False, True, True, True ]
> etc.
>
> For a given list:
> * If all values are None, the function should return None.
> * If at least one value is True, the function should return True.
> * Otherwise, the function should return False.
>
> Right now, my code looks like:
>
> if True in lst:
> return True
> elif False in lst:
> return False
> else:
> return None
>
> This has a light code smell for me though -- can anyone see a simpler
> way of writing this?
>
> STeVe
That code looks like a pretty solid implementation of the spec to me.
There isn't a strict need for the last else, of course, which may be the
smell you detect.
If you wanted to get clever you could write something like
for i in True, False:
if i in lst:
return i
return False
but frankly I think that's more obscure, and saves you pretty much nothing.
regards
Steve
--
Meet the Python developers and your c.l.py favorites March 23-25
Come to PyCon DC 2005 http://www.pycon.org/
Steve Holden http://www.holdenweb.com/
More information about the Python-list
mailing list