18

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

我怎样才能做到这一点 ?

4

1 回答 1

35

我们可以创建一个“子查询”。

[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))
于 2010-10-10T12:06:53.943 回答