simultaneous assignment
Boris Borcic
bborcic at gmail.com
Tue May 2 16:19:39 EDT 2006
Grant Edwards wrote:
> On 2006-05-02, Boris Borcic <bborcic at gmail.com> 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).
>
More information about the Python-list
mailing list