Функция reduce модуля functools позволяет применить указанную функцию к парам значений из итерируемого объекта.
Рассмотрим примеры использования данной полезной функции.
В первом примере мы берем функцию перемножения mult, перемножаем элементы списка lst: 1 * 2 = 2, затем результат умножения первых двух элементов умножаем на 3-й элемент списка - и так до конца списка lst
Теперь более интересный случай
Для краткости здесь мы используем анонимную функцию, чтобы получить разницу двух чисел.
Но помимо этого, мы передали reduce третий аргумент, равный 150. Это так называемый ititializer, с него и начнется цикл вычитаний:
150 - 100 = 50 (вычли первый элемент списка **lst_2**),
50 - 10 = 40 (из результата вычли второй элемент списка **lst_2**) и т.д.
Спасибо за прочтение!
Также разбираю задачи по Python здесь