Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Another way: len(filter(p, xs))


With the sum approach the data set never exists in memory, but is generated as needed; not a big deal for a small set, but it can add up.


And as in python3, filter returns a generator, not a list, the len call will fail altogether.


Yes, I'm aware of that. But my philosophy is to always try to conserve keystrokes wherever possible. Premature optimization is the root of all evil and all that. :) For the same reason I prefer to use dict.items() over dict.iteritems() and range() over xrange() and so on.


This is a simple enough case that I'm not sure it matters, but I think the sum version is simpler to read. Generator expressions are quite powerful if you want to write Python which is more functional-flavored.


I disagree, I think filter/length models the meaning better.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: