Функция reduce() в Python
avatar
7 | (offline)
❤️‍🔥Notehunter Developer
Добавлено:
Категория: Основы «Python»
Комментариев: 0

В этом уроке по основам Python, мы рассмотрим функцию reduce() из модуля functools. Функция предназначена для итерируемой последовательности, чтобы свести ее к единственному значению.  

Синтаксис:

from functools import reduce

reduce(function, iterable[, initializer])

Аргументы:

  • function - пользовательская функция, принимающая 2 аргумента,
  • iterable - итерируемая последовательность,
  • initializer - начальное значение.

Пояснения:

function — это функция, которая применяется к элементам последовательности. Должен принимать два аргумента, где первый аргумент — это ранее накопленное значение, а второй аргумент — следующий элемент последовательности.

iterable — это последовательность, элементы которой должны быть сведены к одному значению. Если последовательность пуста и аргумент инициализации не указан, генерируется исключение TypeError.

Если необязательный initializer существует, он помещается перед итерируемыми элементами в вычислении. Другими словами, это базовая линия, от которой вы хотите начать отсчет. Аргумент initializer также используется по умолчанию, когда iterable пуста.

Рассмотрим примеры:

import functools

my_list = [100, 5, 5, 4, 1]

print('Сумма элементов списка:', functools.reduce(lambda a, b: a + b, my_list))

print('Максимальный элемент списка: ', functools.reduce(lambda a, b: a if a > b else b, my_list))

Результат:

>>> Сумма элементов списка: 115

>>> Максимальный элемент списка:  100

Функция reduce() также может быть объединена с операторными функциями для достижения функциональности, аналогичной функциональности с лямбда-функциями, что делает код более читабельным.

import functools
import operator

my_list = [100, 5, 5, 4, 1]

print('Сумма элементов списка:', functools.reduce(operator.add, my_list))

print('Произведение элементов списка: ', functools.reduce(operator.mul, my_list))

Результат:

>>> Сумма элементов списка: 115

>>> Произведение элементов списка:  10000
Теги записи: Python, Основы Python, Числа, reduce(),
Комментарии к статье 0
Комментариев нет
Форма добавления комментария (необходима регистрация)