The Python list comprehension syntax makes it easy to filter values within a comprehension. For example:
result = [x**2 for x in mylist if type(x) is int] <
I will have a preference for:
itertools.ifilter(bool, (expensive(x) for x in mylist))
This has the advantage to: