Python Language
Функциональное программирование на Python
Поиск…
Вступление
Функциональное программирование разлагает проблему на набор функций. В идеале, функции принимают только входные данные и производят выходные данные и не имеют никакого внутреннего состояния, которое влияет на выход, созданный для данного входа. Ниже приведены функциональные методы, общие для многих языков: например, лямбда, карта, сокращение.
Лямбда-функция
Анонимная, встроенная функция, определенная с помощью лямбда. Параметры лямбда определены слева от двоеточия. Тело функции определено справа от двоеточия. Результат работы тела функции (неявно) возвращен.
s=lambda x:x*x
s(2) =>4
Функция карты
Карта принимает функцию и набор элементов. Он создает новую пустую коллекцию, запускает функцию для каждого элемента в исходной коллекции и вставляет каждое возвращаемое значение в новую коллекцию. Он возвращает новую коллекцию.
Это простая карта, которая берет список имен и возвращает список длин этих имен:
name_lengths = map(len, ["Mary", "Isla", "Sam"])
print(name_lengths) =>[4, 4, 3]
Уменьшить функцию
Уменьшение принимает функцию и набор элементов. Он возвращает значение, которое создается путем объединения элементов.
Это простое сокращение. Он возвращает сумму всех элементов в коллекции.
total = reduce(lambda a, x: a + x, [0, 1, 2, 3, 4])
print(total) =>10
Функция фильтра
Фильтр принимает функцию и коллекцию. Он возвращает коллекцию каждого элемента, для которого функция вернула True.
arr=[1,2,3,4,5,6]
[i for i in filter(lambda x:x>4,arr)] # outputs[5,6]