Функция filter() принимает функцию и итерируемый объект в качестве аргументов, а затем возвращает только те элементы, для которых функция вычисляется в True.
filter(function, iterable)
function — callable, который возвращает булево значениеiterable — любая последовательность или итерируемый объект для фильтрацииfilter() возвращает ленивый итератор, что означает, что элементы вычисляются по требованию, а не все сразу. Чтобы получить конкретную коллекцию, ты должен явно преобразовать её с помощью list(), tuple() или аналогичных функций.
numbers = [-1, 0, 1, 2]
result = list(filter(lambda x: x > 0, numbers))
# result → [1, 2]
Только 1 и 2 удовлетворяют условию x > 0, поэтому только эти элементы возвращаются.
None в качестве функции, будут отфильтрованы все ложные значения (например, 0, "", None)[x for x in iterable if condition]Когда None передаётся как первый аргумент в filter(), она удаляет все falsy-значения, такие как 0, пустые строки и None из итерируемого объекта.
Новый — ещё не проверен сообществом
Вы