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]
<
result = [x for x in map(expensive,mylist) if x]
map() will return a list of the values of each object in mylist passed to expensive(). Then you can list-comprehend that, and discard unnecessary values.
This is somewhat like a nested comprehension, but should be faster (since the python interpreter can optimize it fairly easily).