Skip to content Skip to sidebar Skip to footer

How To Divide All The Elements In A List Together

For example: a = [1,2,3,4,5,6] I want to do: 1/2/3/4/5/6 I have tried using the operator.div function but it doesn't seem to give the correct result. By the way, I am fairly new

Solution 1:

You can use reduce.

Apply function of two arguments cumulatively to the items of sequence, from left to right, so as to reduce the sequence to a single value.

The code can be demonstrated as

>>>from functools import reduce >>>l = [1,2,3,4,5,6]>>>reduce(lambda x,y:x/y,l)
0.001388888888888889

which is equivalent to

>>>1/2/3/4/5/6
0.001388888888888889

As truediv has already been demonstrated by the other answer, this is an alternative (the other way is preferred) for Python2

>>>from __future__ import division>>>l = [1,2,3,4,5,6]>>>reduce(lambda x,y:x/y,l)
0.001388888888888889

Solution 2:

You can use reduce() and operator.truediv:

>>>a = [1,2,3,4,5,6]>>>from operator import truediv>>>>>>reduce(truediv, a)
0.001388888888888889

Note: In python3.x you need to import the reduce() function from from functools module.

Solution 3:

Why not just use a loop?

>>>a = [1,2,3,4,5,6]>>>i = iter(a)>>>result = next(i)>>>for num in i:...    result /= num...>>>result
0.001388888888888889
>>>1/2/3/4/5/6
0.001388888888888889

Post a Comment for "How To Divide All The Elements In A List Together"