what is a good way to do countif in python

Posted by tolomea on Stack Overflow See other posts from Stack Overflow or by tolomea
Published on 2010-04-15T08:47:58Z Indexed on 2010/04/15 8:53 UTC
Read the original article Hit count: 177

Filed under:

I want to count how many members of an iterable meet a given condition. I'd like to do it in a way that is clear and simple and preferably reasonably optimal.

My current best ideas are:

sum(meets_condition(x) for x in my_list)

and

len([x for x in my_list if meets_condition(x)])

The first one being iterator based is presumably faster for big lists. And it's the same form as you'd use for testing any and all. However it depends on the fact that int(True) == 1, which is somewhat ugly.

The second one seems easier to read to me, but it is different from the any and all forms.

Does anyone have any better suggestions? is there a library function somewhere that I am missing?

© Stack Overflow or respective owner

Related posts about python