Steve R. Hastings wrote: > len([v for v in seq if v]) # builds a list, then feeds it to len() > len(v for v in seq if v) # gen obj feeds values to len one at a time
note that generators have no defined length - precisely because they feed values one at a time while you need them all together to speak of a length. The second expression will raise a TypeError because of that. If you want to count objects with a generator expression, use sum(1 for v in seq if some_condition(v)) which is also clearer imho; summing ones for each item satisfying a condition - isn't that a definition of counting ? -- http://mail.python.org/mailman/listinfo/python-list