Фильтрация данных в Python с использованием функции filter()
Python

Фильтрация данных в Python с использованием функции filter()

Razilator

Python - мощный язык программирования, который предоставляет множество встроенных функций для обработки данных. Одна из таких функций - filter(), предназначенная для фильтрации данных на основе заданных условий.

Функция filter() является встроенной функцией высшего порядка, которая позволяет более эффективно и кратко фильтровать элементы из итерируемых объектов, таких как списки, кортежи, множества и словари.

Синтаксис функции filter()

Функция filter() имеет следующий синтаксис:

filter(function, iterable)

где:

  • function - функция, определяющая условие фильтрации. Она должна принимать один аргумент и возвращать булево значение (True или False) в зависимости от того, должен ли быть элемент включен в результирующий вывод.
  • iterable - итерируемый объект, который нужно отфильтровать. Это может быть список, кортеж, множество, словарь или другой итерируемый объект.

Принцип работы функции filter()

Функция filter() применяет заданную функцию фильтрации function к каждому элементу итерируемого объекта iterable. Если функция возвращает True для данного элемента, то элемент будет включен в результирующий вывод. Если функция возвращает False, то элемент будет исключен из вывода. В результате работы функции filter() возвращается новый итератор, содержащий отфильтрованные элементы.

Примеры использования функции filter()

1) Фильтрация списка чисел

main.py
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers) # [2, 4, 6, 8, 10]

2) Фильтрация списка строк

main.py
fruits = ['apple', 'banana', 'cherry', 'date', 'grape']
long_fruits = list(filter(lambda x: len(x) > 5, fruits))
print(long_fruits) # ['banana', 'cherry']

3) Фильтрация списка словарей

main.py
people = [{'name': 'Alice', 'age': 25}, {'name': 'Bob', 'age': 18}, {'name': 'Charlie', 'age': 30}]
adult_people = list(filter(lambda x: x['age'] >= 18, people))
print(adult_people) # [{'name': 'Alice', 'age': 25}, {'name': 'Charlie', 'age': 30}]

Дополнительные возможности функции filter()

Функция filter() также может принимать None в качестве функции фильтрации, в этом случае она будет использовать исходные значения элементов итерируемого объекта как условие. Например:

main.py
numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
non_zero_numbers = list(filter(None, numbers))
print(non_zero_numbers) #  [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Это может быть полезно, когда необходимо исключить некоторые значения, которые интерпретируются как False, например ноль, пустую строку или None.

Заключение

Функция filter() является мощным инструментом для фильтрации данных в Python. Она позволяет удобно и эффективно отфильтровывать элементы из итерируемых объектов на основе заданных условий.

С ее помощью можно легко решать различные задачи, такие как фильтрация чисел, строк или словарей. Она также предлагает дополнительные возможности, такие как использование None в качестве функции фильтрации. Знание функции filter() позволяет программистам более гибко и эффективно работать с данными в Python.

;