Forwarded from Репетитор IT men
reduce() ? Давайте сразу напишем такой пример:
numbers = [1, 11, 12, 13, 18, 9, 8, 6]
from functools import reduce
func = lambda acc, cur : acc + cur
total = reduce(func, numbers, 0)
print('Встроенная reduce: ',total)
def _reduce(callback, collection, init = 0):
acc = init
for k in collection:
acc = callback(acc, k)
return acc
_total = _reduce(func, numbers)
print('Моя reduce: ',_total)
Теперь объясним параметры и работу конструкции:
result = reduce( function, iterable[, initializer] ) :▫️
function — функция, применяемая к элементам итерации. Она должна принимать два аргумента.▫️
iterable — итерируемый объект, элементы которого вы хотите уменьшить. Это может быть список, кортеж или любой другой итерируемый объект.▫️
initializer — (необязательно): начальное значение аккумулятора (накопителя). Оно используется в качестве первого аргумента при первом вызове функции, если оно предусмотрено.⚠️ Обработка пустых итераций: Одной из распространенных ошибок при использовании функции
reduce() является обработка пустых итераций. Передача пустой итерации в reduce() без инициализатора вызывает Ошибку типа поскольку нет начального значения для запуска процесса сокращения. Чтобы избежать этого, всегда указывайте инициализатор, когда итерируемый объект может быть пустым.⚙️ Производительность:
▫️ Эффективность
reduce() по сравнению с циклами: Функция reduce() может быть более эффективной, чем явные циклы, потому что она реализована на C, что может обеспечить преимущества в производительности. Однако это преимущество часто незначительно и зависит от сложности применяемой функции.▫️Преимущества использования встроенных функций в производительности: Встроенные функции, такие как
sum(), min(), и max() высоко оптимизированы с точки зрения производительности. Они реализованы на C и могут выполнять операции быстрее, чем эквивалентный код Python с использованием reduce().reduce() ? Функция reduce() полезна при итеративной обработке данных, избегая явных циклов и делая код более читаемым и кратким. Некоторые распространенные варианты использования включают:▫️ Суммирование чисел в списке: Быстрое суммирование всех элементов.
▫️ Умножение элементов итеративного элемента: Вычисление произведения элементов.
▫️ Объединение строк: Объединение нескольких строк в одну.
▫️ Нахождение максимального или минимального значения: Определение самого большого или самого маленького элемента в последовательности.
#python #разработка #программирование #IT #алгоритмы
💡 Репетитор IT mentor // @mentor_it
Please open Telegram to view this post
VIEW IN TELEGRAM
👍42👨💻8❤4🤨4🔥3👾2