例如:
a = [1,2,3,4,5,6]
我想这样做:
1/2/3/4/5/6
我尝试过使用operator.div
函数,但似乎没有给出正确的结果。顺便说一下,我对python很新。
答案 0 :(得分:6)
您可以使用reduce
。
将两个参数的函数累加到序列项中,从左到右,以便将序列减少为单个值。
代码可以演示为
>>> from functools import reduce
>>> l = [1,2,3,4,5,6]
>>> reduce(lambda x,y:x/y,l)
0.001388888888888889
相当于
>>> 1/2/3/4/5/6
0.001388888888888889
由于truediv
已被其他answer证明,这是Python2的另一种选择(另一种方式是首选)
>>> from __future__ import division
>>> l = [1,2,3,4,5,6]
>>> reduce(lambda x,y:x/y,l)
0.001388888888888889
答案 1 :(得分:6)
您可以使用reduce()
和operator.truediv
:
>>> a = [1,2,3,4,5,6]
>>> from operator import truediv
>>>
>>> reduce(truediv, a)
0.001388888888888889
注意:在python3.x中,您需要从functools
模块中导入reduce()
函数。
答案 2 :(得分:4)
为什么不使用循环?
>>> 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