Игнорировать элемент при создании списка в Python - PullRequest
14 голосов
/ 10 октября 2010

Мне нужно построить список из строки в Python, используя синтаксис [f(char) for char in string], и я хотел бы иметь возможность игнорировать (не вставлять в список) значения f (x), которые равны None .

Как я могу это сделать?

1 Ответ

29 голосов
/ 10 октября 2010

Мы могли бы создать «подзапрос».

[r for r in (f(char) for char in string) if r is not None]

Если вы разрешите игнорировать также все ложные значения (0, False, None и т. Д.), Можно использовать filter:

filter(None, (f(char) for char in string) )
# or, using itertools.imap,
filter(None, imap(f, string))
...