在python中构建列表时忽略一个元素

Mat*_*Mat 14 python list syntactic-sugar

我需要使用[f(char) for char in string]语法从python中的字符串构建一个列表,我希望能够忽略(不在列表中插入)f(x)的值等于None.

我怎样才能做到这一点 ?

ken*_*ytm 29

我们可以创建一个"子查询".

[r for r in (f(char) for char in string) if r is not None]
Run Code Online (Sandbox Code Playgroud)

如果允许忽略所有False值(0,False,None等),则filter可以使用:

filter(None, (f(char) for char in string) )
# or, using itertools.imap,
filter(None, imap(f, string))
Run Code Online (Sandbox Code Playgroud)