import timeit
from functools import reduce
def add_in_loop(num):
total = 0
for ix in range(num+1):
total += ix
return total
def add_with_reduce(num):
total = reduce(lambda x, y: x + y, range(num+1))
return total
def main():
#num = 4
#print(add_in_loop(num))
#print(add_with_reduce(num))
for num in [10, 1000]:
print(f'num {num}')
for name in ['add_in_loop', 'add_with_reduce']:
print("{:16} {}".format(name, timeit.timeit(f'{name}({num})',
number=100000,
setup=f'from __main__ import {name}')))
print()
if __name__ == "__main__":
main()
num 10
add_in_loop 0.023712733993306756
add_with_reduce 0.05284293496515602
num 1000
add_in_loop 1.57034146389924
add_with_reduce 3.0021417930256575