Python Glossary English

Python 3.0+itertoolsфункция

itertools.filterfalse

itertools

Отдаёт элементы, для которых предикат ложен (обратное filter()).

Синтаксис

itertools.filterfalse(predicate, iterable)

Как и у filter, значение predicate=None означает «проверять сам элемент на истинность», так что filterfalse(None, it) отдаёт именно ложные элементы — нули, пустые строки, None. В паре с filter на одном источнике (через tee) это стандартный способ разбить данные на две группы по условию.

Примеры

import itertools
print(list(itertools.filterfalse(lambda x: x % 2, [1, 2, 3, 4])))   # → [2, 4]
print(list(itertools.filterfalse(None, [0, 1, '', 'a', [], [2]])))  # → [0, '', []]
print(list(itertools.filterfalse(lambda w: len(w) > 3, ['кот', 'дом', 'программа', 'и'])))  # → ['кот', 'дом', 'и']
print(list(itertools.filterfalse(lambda x: True, [1, 2, 3])))  # → []
print(list(filter(lambda x: x % 2, [1, 2, 3, 4])))  # → [1, 3]

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности