Когда бы вы использовали Redu () вместо Sum ()?

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

Пример, который я придумал:

scores = [90, 91, 92, 94, 95, 96, 97, 99, 100]

def add(num1, num2):
    '''returns the sum of the parameters'''
    return num1 + num2

import operator 

timeit reduce(add, scores) / len(scores)  #--> 1000000 loops, best of 3: 799 ns per loop

timeit sum(scores) / len(scores)  #--> 1000000 loops, best of 3: 207 ns per loop

timeit reduce(operator.add, scores) / len(scores) #--> 1000000 loops, best of 3: 485 ns per loop

Казалось бы, в приведенном выше примере использование функции более высокого порядка почти в 4 раза медленнее.

Итак, мои вопросы: когда будет подходящее время для использования функции более высокого порядка, потому что ясно, что в приведенном выше примере это не так?

Ответы на вопрос(4)

Ваш ответ на вопрос