2017-09-22 3 views
-3
>>> ListOfNumbers = [1,2,3,4,5,6,7,8,9,10] 
>>> 1/2/3/4/5/6/7/8/9/10 # should be computed 
2.75573192e 

Antwort

2

können Sie verwenden reduce:

ListOfNumbers = [1,2,3,4,5,6,7,8,9,10] 
print(reduce(lambda x, y: x/float(y), ListOfNumbers)) 

Ausgang:

2.7557319224e-07 

Sie auch itertools.accumulate für Python3 verwenden können:

import operator 
import itertools 
print(list(itertools.accumulate(ListOfNumbers, func=operator.truediv))[-1]) 

Ausgabe:

2.7557319223985894e-07 
2

Sie könnten reduce die Liste mit einer Division-Operation. Beachten Sie, dass da alle Elemente in Ihrer Liste ganze Zahlen sind, würden Sie sie konvertieren, um zu Schwimmer Punkt Division zu verwenden Schwimm- und erhalten das Ergebnis Sie erwarten:

result = reduce((lambda x, y: float(x)/y), [1,2,3,4,5,6,7,8,9,10]) 
+1

* "man müsste sie konvertieren Floaten, um die Gleitkommadivision zu verwenden "* - Nur in Python 2. – vaultah

Verwandte Themen