私はpython3で速度のみ(そしてもちろん正確さ)のためにこのコードを最適化しようとしています:
from math import log
from timeit import Timer
def groffle_slow(mass, density):
total = 0.0
for i in range(10000):
masslog = log(mass * density)
total += masslog/(i+1)
return total
こんなにmap
高速化されたのには驚いたので...
def groffle_faster(mass, density):
total = 0.0
masslog = log(mass * density)
return map(sum, (masslog/(i+1) for i in range(10000)))
実行時間の違いを見ると、比較にならない。groffle_faster() はかなり高速ですが、マップ オブジェクトを返します。マップ オブジェクトには、合計が float として含まれている必要があります。
とにかく、マップオブジェクトからフロートを取得できますか?
ありがとう!