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 to python.
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
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With