Grant Edwards wrote:
> On 2006-05-02, Boris Borcic <[EMAIL PROTECTED]> wrote:
>> Grant Edwards wrote:
>>> Python knows how to count.  :)
>>>
>>> def countFalse(seq):
>>>     return len([v for v in seq if not v])
>>>
>>> def countTrue(seq):
>>>     return len([v for v in seq if v])
>>>
>>> def truth_test(seq):
>>>     return countTrue(seq) == 1
>>>
>> I'd suggest the more direct
>>
>> def countFalse(seq) :
>>      return sum(1 for v in seq if not v)
> 
> I guess I don't see how that is more direct.
> 
> If you want to know how many items are in a seqneuce, you call
> len().  

sum doesn't construct a sequence

> 
> That's what it's for.
> 
> The number of objects in a list is returned in O(1) time by
> len(sequence). 

yeah, but you need to construst the list first, and that isn't O(1) neither in 
time or space.

> 
> Converting that list to a list of 1's

that's not what my suggestion is doing

and then summing the 1's
> is O(N).
> 
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to