StKiller StKiller - 1 year ago 64
Python Question

Python - emulate sum() using list comprehension

Is it possible to emulate something like sum() using list comprehension ?

For example - I need to calculate the product of all elements in a list :

list = [1, 2, 3]
product = [magic_here for i in list]

#product is expected to be 6

Code that is doing the same :

def product_of(input):
result = 1
for i in input:
result *= i
return result

Answer Source

No; a list comprehension produces a list that is just as long as its input. You will need one of Python's other functional tools (specifically reduce() in this case) to fold the sequence into a single value.