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] <
Came up with my own answer after a minute of thought. It can be done with nested comprehensions:
result = [y for y in (expensive(x) for x in mylist) if y]
I guess that works, though I find nested comprehensions are only marginally readable