How many different ways can we multiply the elements of a variable-length list in Python?
def iterative(args_list):
j=1
for i in args_list:
j *= i
return j
def recursive(args_list):
if type(args_list) == int:
return args_list
elif len(args_list) == 0:
return "empyt list"
elif len(args_list) == 1:
return args_list[0]
else:
return recurse(args_list[0]) * recurse(args_list[1:])
def with_operator(args_list):
from operator import mul
return reduce(mul, args_list)
def without_operator(args_list):
return reduce(lambda x,y: x*y, args_list)
def numpy_prod(args_list):
from numpy import prod
return prod(args_list)
def log_sum_exp(args_list):
from math import exp, log
return exp(sum(map(log, args_list)))
def log_fsum_exp(args_list):
from math import exp, log, fsum
return exp(fsum(map(log, args_list)))
Any that I missed? Add them in the comments.