Найти в Дзене
IT для всех

Python. Функциональное программирование (lambda, map, filter, reduce и zip)

Lambda Это функция выраженная в одну строку. Удобно использовать, вместо коротких редко используемых функций. Имеет синтаксис: lambda arguments: expression - аргументы: действие Простейший пример Lambda выражения на сумму чисел: Map Принимает функцию и аргумент составного типа данных. Применяет переданную функцию к каждому элементу. Синтаксис: list(map(функция, последовательность)) Пример перевода элементов списка из str в int: Также может принимать несколько составных типов данных, в таком случае обработка будет остановлена на минимальной последовательности. Filter Функция фильтрации составного типа данных по признаку передаваемой функции. Синтаксис: list(filter(функция, последовательность)) Пример с использованием lambda функции: Reduce Принимает функцию и последовательность. Последовательно применяет функцию к элементам списка. Синтаксис: functools.reduce(функция, последовательность) Пример подсчета суммы элементов: В Python 3-x не рекомендуется к использованию и вычеркнута из
Оглавление

Lambda

Это функция выраженная в одну строку. Удобно использовать, вместо коротких редко используемых функций.

Имеет синтаксис: lambda arguments: expression - аргументы: действие

Простейший пример Lambda выражения на сумму чисел:

Map

Принимает функцию и аргумент составного типа данных. Применяет переданную функцию к каждому элементу.

Синтаксис: list(map(функция, последовательность))

Пример перевода элементов списка из str в int:

-2

Также может принимать несколько составных типов данных, в таком случае обработка будет остановлена на минимальной последовательности.

Filter

Функция фильтрации составного типа данных по признаку передаваемой функции.

Синтаксис: list(filter(функция, последовательность))

Пример с использованием lambda функции:

-3

Reduce

Принимает функцию и последовательность. Последовательно применяет функцию к элементам списка.

Синтаксис: functools.reduce(функция, последовательность)

Пример подсчета суммы элементов:

-4

В Python 3-x не рекомендуется к использованию и вычеркнута из стандартной библиотеки из-за чего требуется подключать модуль:

import functools

И использовать синтаксис: functools.reduce()

Её может заменить цикл for.

Zip

Объединяет переданные последовательности в кортежи.

Синтаксис: list(zip(последовательность_1, последовательность_2))

-5

Прекращает выполнение как только достигнут конец минимального списка.

-6