Ответ 1
Мы могли бы создать "подзапрос".
[r for r in (f(char) for char in string) if r is not None]
Если вы также игнорируете все значения False (0, False, None и т.д.), можно использовать filter
:
filter(None, (f(char) for char in string) )
# or, using itertools.imap,
filter(None, imap(f, string))