Steven Bethard <[EMAIL PROTECTED]> 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:
<SNIP OP's code>
This has a light code smell for me though -- can anyone see a simpler way of writing this?
What about...:
for val in lst: if val is not None: return val return None
or the somewhat fancy/clever:
for val in (x for x in lst if x is not None): return val return None
Alex
These don't do what the OP desired.
.>>> test_case = [False, True, True, True ] .>>> def alexs_funct(lst): . for val in lst: . if val is not None: . return val . return None
>>> alexs_funct(test_case) False
But, by the 'spec', it ought return True.
Best,
Brian vdB
A mere newbie, quite pleased with himself for finding a problem with 'bot code -- next scheduled to occur mid 2011 :-)
-- http://mail.python.org/mailman/listinfo/python-list