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.