filter()
Функция filter() пропускает через себя элементы итерируемого объекта,
оставляя только те, для которых функция-предикат возвращает истинное
значение. Возвращает ленивый итератор, который можно перебрать в цикле
или превратить в список.
Сигнатура
filter(function, iterable)
Параметры:
function— функция одного аргумента, возвращающаяTrue/False. Если передатьNone, отбираются элементы, истинные сами по себе.iterable— любой итерируемый объект (список, кортеж, генератор и т. д.).
Возвращает: объект-итератор filter с прошедшими проверку элементами.
Примеры
Отбор чётных чисел:
nums = [1, 2, 3, 4, 5, 6]
evens = list(filter(lambda n: n % 2 == 0, nums))
print(evens)
[2, 4, 6]
Удаление пустых строк через None:
words = ["hello", "", "world", None, "python", 0]
clean = list(filter(None, words))
print(clean)
['hello', 'world', 'python']
Фильтр по длине строки:
names = ["Bek", "Aigerim", "Eli", "Aliya"]
long_names = list(filter(lambda s: len(s) >= 5, names))
print(long_names)
['Aigerim', 'Aliya']
Совместно с обычной функцией:
def is_positive(x):
return x > 0
values = [-3, 0, 5, -1, 8]
print(list(filter(is_positive, values)))
[5, 8]
Фильтрация словарей по полю:
users = [
{"name": "Bek", "age": 17},
{"name": "Dauren", "age": 25},
{"name": "Aida", "age": 14},
]
adults = list(filter(lambda u: u["age"] >= 18, users))
print(adults)
[{'name': 'Dauren', 'age': 25}]
См. также
Примечание
Описание основано на официальной документации Python (docs.python.org), распространяемой под лицензией PSF License v2. © Python Software Foundation.