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