Шаг 70.
Основы языка Python.
Списки, кортежи, множества и диапазоны. Функция reduce()

    На этом шаге мы рассмотрим назначение и использование этой функции.

    Функция 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
Архив с файлом можно взять здесь.

    На следующем шаге мы рассмотрим добавление и удаление элементов списка.




Предыдущий шаг Содержание Следующий шаг