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

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

Оглавление

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