例如:
a = [1,2,3,4,5,6]
Run Code Online (Sandbox Code Playgroud)
我想要做:
1/2/3/4/5/6
Run Code Online (Sandbox Code Playgroud)
我尝试过使用该operator.div功能,但似乎没有给出正确的结果.顺便说一下,我对python很新.
你可以用reduce.
将两个参数的函数累加到序列项中,从左到右,以便将序列减少为单个值.
代码可以演示为
>>> from functools import reduce
>>> l = [1,2,3,4,5,6]
>>> reduce(lambda x,y:x/y,l)
0.001388888888888889
Run Code Online (Sandbox Code Playgroud)
这相当于
>>> 1/2/3/4/5/6
0.001388888888888889
Run Code Online (Sandbox Code Playgroud)
正如truediv其他答案已经证明的那样,这是Python2的另一种选择(另一种方式是首选)
>>> from __future__ import division
>>> l = [1,2,3,4,5,6]
>>> reduce(lambda x,y:x/y,l)
0.001388888888888889
Run Code Online (Sandbox Code Playgroud)
你可以使用reduce()和operator.truediv:
>>> a = [1,2,3,4,5,6]
>>> from operator import truediv
>>>
>>> reduce(truediv, a)
0.001388888888888889
Run Code Online (Sandbox Code Playgroud)
注意:在python3.x中,您需要reduce()从functools模块导入函数.