Jeremy Bowers wrote:

On Fri, 04 Feb 2005 10:48:44 -0700, Steven Bethard wrote:

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.

Yes, I see the smell, you are searching the list multiple times. You could bail out when you can:

seenFalse = False
for item in list:
        if item: return True
        if item is False: seenFalse = True
if seenFalse:
        return False
return None

I'd modify this approach slightly...

def tfn(lst):
    answer = None
    for item in lst:
        if item is True: return True
        if item is False: answer = False
    return answer

But yeah, the original, straightforward way is probably enough clearer that I wouldn't bother with anything else unless lists might be long enough for performance to matter.

Jeff Shannon
Technician/Programmer
Credit International

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to