На этом шаге мы рассмотрим назначение и использование этой функции.
Функция reduce() из модуля functools применяет указанную функцию к парам элементов и накапливает результат. Функция имеет следующий формат:
reduce(<Функция>, <Последовательность> [, <Начальное значение>] )
В функцию обратного вызова в качестве параметров передаются два элемента: первый элемент будет содержать результат предыдущих вычислений, а второй - значение текущего элемента. Получим сумму всех элементов списка:
from functools import reduce # Подключаем модуль def func(x, y): print("({0}, {1})".format(x, y), end=" ") return x + y arr = [1, 2, 3, 4, 5] summa = reduce(func, arr) # Последовательность: (1, 2) (3, 3) (6, 4) (10, 5) print(summa) # Результат выполнения: 15 summa = reduce(func, arr, 10) # Последовательность: (10, 1) (11, 2) (13, 3) (16, 4) (20, 5) print(summa) # Результат выполнения: 25 summa = reduce(func, [], 10) print(summa) # Результат выполнения: 10
На следующем шаге мы рассмотрим добавление и удаление элементов списка.